#include <bits/stdc++.h>
using uint = unsigned int;
using uint64 = unsigned long long;
template <class _Tp, uint sz>
using arr = _Tp[sz];
template <class _Tp>
inline void chkMin(_Tp& x, const _Tp& y) {
  (x > y) && (x = y);
}
namespace IOManager {
constexpr uint FILESZ(2200010);
unsigned char buf[FILESZ];
const unsigned char* ibuf = buf;
struct IOManager {
  IOManager() { buf[fread(buf, 1u, FILESZ, stdin)] = ' '; }
  ~IOManager() {}
  template <class _Tp>
  inline operator _Tp() {
    _Tp s = 0u;
    for (; !isdigit(*ibuf); ++ibuf)
      ;
    for (; isdigit(*ibuf); ++ibuf) s = (_Tp)(s * 10u + *ibuf - 48u);
    return s;
  }
};
}  // namespace IOManager
IOManager::IOManager io;
arr<uint, 200001> a;
int main() {
  const uint n = io;
  for (uint i = 1; i <= (n << 1); ++i) a[i] = io;
  std::sort(a + 1, a + (n << 1) + 1);
  uint64 Ans = 1ull * (a[n] - a[1]) * (a[n << 1] - a[n + 1]);
  for (uint i = 2; i <= n; ++i)
    chkMin(Ans, 1ull * (a[n << 1] - a[1]) * (a[i + n - 1] - a[i]));
  printf("%llu", Ans);
  return 0;
}
