#include <bits/stdc++.h>
using namespace std;
const int nm = 100010;
int n, k;
long long x[nm], y[nm];
set<pair<long long, int> > ngang, doc;
vector<int> xoa1, xoa2, xoa3, xoa4;
int main() {
  scanf("%d%d", &n, &k);
  for (int i = 1; i <= n; ++i) {
    int a, b, c, d;
    scanf("%d%d%d%d", &a, &b, &c, &d);
    x[i] = a + c;
    y[i] = b + d;
    ngang.insert(make_pair(y[i], i));
    doc.insert(make_pair(x[i], i));
  }
  long long res = LONG_LONG_MAX;
  for (int a = 0; a <= k; ++a) {
    for (int i = 1; i <= a; ++i) {
      int u = ngang.begin()->second;
      xoa1.push_back(u);
      ngang.erase(ngang.begin());
      doc.erase(make_pair(x[u], u));
    }
    for (int b = 0; a + b <= k; ++b) {
      for (int i = 1; i <= b; ++i) {
        multiset<pair<long long, int> >::iterator it = ngang.end();
        it--;
        int u = it->second;
        xoa2.push_back(u);
        ngang.erase(it);
        doc.erase(make_pair(x[u], u));
      }
      for (int c = 0; a + b + c <= k; ++c) {
        for (int i = 1; i <= c; ++i) {
          int u = doc.begin()->second;
          xoa3.push_back(u);
          doc.erase(doc.begin());
          ngang.erase(make_pair(y[u], u));
        }
        int d = k - a - b - c;
        for (int i = 1; i <= d; ++i) {
          multiset<pair<long long, int> >::iterator it = doc.end();
          it--;
          int u = it->second;
          xoa4.push_back(u);
          doc.erase(it);
          ngang.erase(make_pair(y[u], u));
        }
        multiset<pair<long long, int> >::iterator it = ngang.end();
        it--;
        long long A = it->first - ngang.begin()->first;
        if (A & 1) A++;
        if (A == 0) A = 2;
        it = doc.end();
        it--;
        long long B = it->first - doc.begin()->first;
        if (B & 1) B++;
        if (B == 0) B = 2;
        res = min(res, A * B);
        for (int i = int(xoa4.size()) - 1; i >= 0; --i) {
          int u = xoa4[i];
          xoa4.pop_back();
          doc.insert(make_pair(x[u], u));
          ngang.insert(make_pair(y[u], u));
        }
        for (int i = int(xoa3.size()) - 1; i >= 0; --i) {
          int u = xoa3[i];
          xoa3.pop_back();
          doc.insert(make_pair(x[u], u));
          ngang.insert(make_pair(y[u], u));
        }
      }
      for (int i = int(xoa2.size()) - 1; i >= 0; --i) {
        int u = xoa2[i];
        xoa2.pop_back();
        doc.insert(make_pair(x[u], u));
        ngang.insert(make_pair(y[u], u));
      }
    }
    for (int i = int(xoa1.size()) - 1; i >= 0; --i) {
      int u = xoa1[i];
      xoa1.pop_back();
      doc.insert(make_pair(x[u], u));
      ngang.insert(make_pair(y[u], u));
    }
  }
  printf("%I64d\n", res / 4);
}
