#include <bits/stdc++.h>
using namespace std;
#ifdef LOCAL
  #include "settings/debug.cpp"
  #define _GLIBCXX_DEBUG
#else
  #define Debug(...) void(0)
#endif
#define rep(i, n) for (int i = 0; i < (n); ++i)
using ll = long long;
using ull = unsigned long long;

int main() {
  int n;
  cin >> n;
  multiset<ll> pq;
  rep(i, n) {
    ll a;
    cin >> a;
    pq.insert(a);
  }
  while (pq.size() > 1) {
    // alice
    ll a = *pq.begin();
    pq.erase(pq.begin());
    ll b = *pq.begin();
    pq.erase(pq.begin());
    pq.insert(a * b);
    // bob
    if (pq.size() > 1) {
      pq.erase(--pq.end()), pq.erase(--pq.end());
      pq.insert(1);
    }
  }
  cout << *pq.begin() << endl;
  return 0;
}