#include <bits/stdc++.h>   using namespace std;   int m, n, k;   pair<long long, long long> ptsx[100005];   pair<long long, long long> ptsy[100005];   bool removed[100005];   long long get(int l, int r, int u, int d, int dep) {     while (removed[ptsx[l].second]) l++;     while (removed[ptsx[r].second]) r--;     while (removed[ptsy[u].second]) u++;     while (removed[ptsy[d].second]) d--;     if (dep == k) {       long long xd = ptsx[r].first - ptsx[l].first;       long long yd = ptsy[d].first - ptsy[u].first;       if (xd == 0) xd++;       if (yd == 0) yd++;       return ((xd + 1) / 2) * ((yd + 1) / 2);     }     long long ans = (1LL) << 62;     removed[ptsx[l].second] = true;     ans = min(ans, get(l + 1, r, u, d, dep + 1));     removed[ptsx[l].second] = false;     removed[ptsx[r].second] = true;     ans = min(ans, get(l, r - 1, u, d, dep + 1));     removed[ptsx[r].second] = false;     removed[ptsy[u].second] = true;     ans = min(ans, get(l, r, u + 1, d, dep + 1));     removed[ptsy[u].second] = false;     removed[ptsy[d].second] = true;     ans = min(ans, get(l, r, u, d - 1, dep + 1));     removed[ptsy[d].second] = false;     return ans;   }   int main() {     ios_base::sync_with_stdio(0);     cout << fixed << setprecision(12);     cin >> n >> k;     for (int i = 0, _i = (n); i < _i; ++i) {       int x1, y1, x2, y2;       cin >> x1 >> y1 >> x2 >> y2;       ptsx[i] = make_pair(x1 + x2, i);       ptsy[i] = make_pair(y1 + y2, i);     }     sort(ptsx, ptsx + n);     sort(ptsy, ptsy + n);     cout << get(0, n - 1, 0, n - 1, 0) << endl;     return 0;   }   