#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;
}
