#include <set>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;

int main() {
	int N;
	cin >> N;
	vector<int> A(N);
	for (int i = 0; i < N; i++) {
		cin >> A[i];
	}
	if (N % 2 == 1) {
		cout << (N == 1 ? A[0] : 1) << endl;
	}
	else {
		multiset<long long> s(A.begin(), A.end());
		for (int i = 0; i < N - 1; i++) {
			if (i % 2 == 0) {
				long long pa = *s.begin(); s.erase(s.begin());
				long long pb = *s.begin(); s.erase(s.begin());
				s.insert(pa * pb);
			}
			else {
				long long pa = *(--s.end()); s.erase(--s.end());
				long long pb = *(--s.end()); s.erase(--s.end());
				s.insert(1);
			}
		}
		cout << *s.begin() << endl;
	}
	return 0;
}