#include <bits/stdc++.h>
using namespace std;
template <typename T>
vector<T> gpf(T n) {
  vector<T> v;
  while (n % 2 == 0) {
    v.push_back(2ll);
    n = n / 2;
  }
  for (T i = 3; i <= sqrt(n); i = i + 2) {
    while (n % i == 0) {
      v.push_back(i);
      n = n / i;
    }
  }
  if (n > 2) v.push_back(n);
  return v;
}
long long rmsb(long long n) { return n & (-n); }
long long countsetbits(long long n) {
  long long cnt = 0;
  while (n) {
    int rmb = rmsb(n);
    n -= rmb;
    cnt++;
  }
  return cnt;
}
long long gcd(long long a, long long b) {
  if (b == 0) return a;
  return gcd(b, a % b);
}
long long lcm(int a, int b) { return (a / gcd(a, b)) * b; }
bool prime(long long n) {
  if (n == 1)
    return 0;
  else if (n == 2)
    return 1;
  else {
    for (long long i = 2; i * i <= n; i++) {
      if (n % i == 0) {
        return 0;
      }
    }
    return 1;
  }
}
string bin(long long n) {
  string s = "";
  while (n > 0) {
    s += to_string(n % 2);
    n /= 2;
  }
  return s;
}
long long round(long long a, long long b) {
  if (a % b == 0) return a / b;
  return (a / b) + 1;
}
bool isp(long long x) { return x && (!(x & (x - 1))); }
long long roundn(long long x, long long n) {
  long long next = pow(n, ceil(log(x) / log(n)));
  if (next == x) return next;
  return next;
}
long long pw(long long x, long long n) { return ceil(log(x) / log(n)); }
long long fact(long long n) {
  long long ans = 1ll;
  for (long long i = 2; i <= n; i++) {
    ans = ((ans % 1000000007) * (i % 1000000007)) % 1000000007;
  }
  return ans;
}
bool issubstring(string s, string sb) {
  if (sb == "") return 1;
  string ss = s.substr(0, sb.length());
  if (ss == sb) return true;
  for (int i = sb.length(); i < s.length(); i++) {
    ss.erase(ss.begin());
    ss.push_back(s[i]);
    if (ss == sb) {
      return true;
    }
  }
  return false;
}
long long a[200005], b;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.tie(nullptr);
  ;
  int t = 1;
  while (t--) {
    int n;
    cin >> n;
    for (int i = 0; i < 2 * n; ++i) cin >> a[i];
    sort(a, a + 2 * n);
    b = (a[n - 1] - a[0]) * (a[2 * n - 1] - a[n]);
    for (int i = 1; i < n; ++i)
      b = min((a[n + i - 1] - a[i]) * (a[2 * n - 1] - a[0]), b);
    cout << b;
  }
}
