#include <bits/stdc++.h>
void inpLL(long long& n) {
  n = 0;
  int cx = getchar();
  while (!(cx >= '0' && cx <= '9')) cx = getchar();
  while ((cx >= '0' && cx <= '9'))
    n = (n << 3LL) + (n << 1LL) + cx - '0', cx = getchar();
}
using namespace std;
pair<pair<long long, long long>, long long> P[100020];
pair<pair<long long, long long>, long long> D[100020];
long long x, y, X, Y, n, k, i;
long long A, B, ans;
bool f[100020];
int main() {
  cin >> n >> k;
  for (i = 1; i <= n; i++) {
    inpLL(x);
    inpLL(y);
    inpLL(X);
    inpLL(Y);
    x += X;
    y += Y;
    P[i].first = make_pair(x, y);
    P[i].second = i;
    D[i].first = make_pair(y, x);
    D[i].second = i;
  }
  sort(P + 1, P + n + 1);
  sort(D + 1, D + n + 1);
  A = (P[n].first.first - P[1].first.first + 1) / 2;
  B = (D[n].first.first - D[1].first.first + 1) / 2;
  A = max(A, 1LL);
  B = max(B, 1LL);
  ans = A * B;
  for (long long i = 0; i <= k; i++)
    for (long long j = n + 1; j >= n - k + 1; j--)
      for (long long I = 0; I <= k; I++)
        for (long long J = n + 1; J >= n - k + 1; J--) {
          long long now = 0;
          for (long long pp = 1; pp <= i; pp++) {
            if (f[P[pp].second]) continue;
            f[P[pp].second] = 1;
            now++;
          }
          for (long long pp = n; pp >= j; pp--) {
            if (f[P[pp].second]) continue;
            f[P[pp].second] = 1;
            now++;
          }
          for (long long pp = 1; pp <= I; pp++) {
            if (f[D[pp].second]) continue;
            f[D[pp].second] = 1;
            now++;
          }
          for (long long pp = n; pp >= J; pp--) {
            if (f[D[pp].second]) continue;
            f[D[pp].second] = 1;
            now++;
          }
          if (now <= k) {
            A = (P[j - 1].first.first - P[i + 1].first.first + 1) / 2;
            B = (D[J - 1].first.first - D[I + 1].first.first + 1) / 2;
            A = max(A, 1LL);
            B = max(B, 1LL);
            ans = min(ans, A * B);
          }
          for (long long pp = 1; pp <= i; pp++) f[P[pp].second] = 0;
          for (long long pp = n; pp >= j; pp--) f[P[pp].second] = 0;
          for (long long pp = 1; pp <= I; pp++) f[D[pp].second] = 0;
          for (long long pp = n; pp >= J; pp--) f[D[pp].second] = 0;
        }
  cout << ans << endl;
}
