#include <iostream>
#include <limits.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;

ull min2(ull a, ull b) {
    if (a < b) return a;
    else return b;
}
ull max2(ull a, ull b) {
    if (a > b) return a;
    else return b;
}

int main(void){
    ll n, k, x[55], y[55];
    ull z[55], w[55];
    cin >> n >> k;
    for (int i = 0; i < n; i++) {
        cin >> x[i] >> y[i];
        z[i] = x[i] + 1e9;
        w[i] = y[i] + 1e9;
    }
    
    ull min = 4e18;
    if (k == 2) {
        for (int i = 0; i < n; i++) {
            for (int j = i+1; j < n; j++) {
                ull x_min, x_max, y_min, y_max;
                x_min = min2(z[i], z[j]);
                x_max = max2(z[i], z[j]);
                y_min = min2(w[i], w[j]);
                y_max = max2(w[i], w[j]);
                
                int in = 0;
                for (int l = 0; l < n; l++) {
                    if (x_min <= z[l] && x_max >= z[l] 
                    && y_min <= w[l] && y_max >= w[l]) in++;
                }
                if (in >= k) {
                    if (min > (x_max - x_min) * (y_max - y_min)) {
                        min = (x_max - x_min) * (y_max - y_min);
                    }
                }
            }
        }
    }
    else if (k == 3) {
        for (int q = 0; q < n; q++) {
            for (int r = q+1; r < n; r++) {
                for (int s = r+1; s < n; s++) {
                    ull x_min, x_max, y_min, y_max;
                    x_min = min2(min2(min2(3e9, z[q]), z[r]), z[s]);
                    x_max = max2(max2(max2(0, z[q]), z[r]), z[s]);
                    y_min = min2(min2(min2(3e9, w[q]), w[r]), w[s]);
                    y_max = max2(max2(max2(0, w[q]), w[r]), w[s]);
                    
                    int in = 0;
                    for (int l = 0; l < n; l++) {
                        if (x_min <= z[l] && x_max >= z[l] 
                        && y_min <= w[l] && y_max >= w[l]) in++;
                    }
                    if (in >= k) {
                        if (min > (x_max - x_min) * (y_max - y_min)) {
                            min = (x_max - x_min) * (y_max - y_min);
                        }
                    }
                }
            }
        }
    }
    else {
        for (int p = 0; p < n; p++) {
            for (int q = p+1; q < n; q++) {
                for (int r = q+1; r < n; r++) {
                    for (int s = r+1; s < n; s++) {
                        ull x_min, x_max, y_min, y_max;
                        x_min = min2(min2(min2(z[p], z[q]), z[r]), z[s]);
                        x_max = max2(max2(max2(z[p], z[q]), z[r]), z[s]);
                        y_min = min2(min2(min2(w[p], w[q]), w[r]), w[s]);
                        y_max = max2(max2(max2(w[p], w[q]), w[r]), w[s]);
                        
                        int in = 0;
                        for (int l = 0; l < n; l++) {
                            if (x_min <= z[l] && x_max >= z[l] 
                            && y_min <= w[l] && y_max >= w[l]) in++;
                        }
                        if (in >= k) {
                            if (min > (x_max - x_min) * (y_max - y_min)) {
                                min = (x_max - x_min) * (y_max - y_min);
                            }
                        }
                    }
                }
            }
        }
    }
    
    cout << min << endl;
}


Measured memory_bytes: 256