#include <iostream>
using namespace std;
struct elem {
float data;
int pos;
};
int main(int argc, const char * argv[]) {
int N;
cin >> N;
if (N<7) {
cout<<"Corrupted data";
}
elem minVal[13];
for (int i=0; i<13; i++) {
minVal[i] = {10001.0f+i,0};
}
float in;
bool flag = true;
for (int i=0; i<N; i++) {
cin>>in;
flag = true;
for (int j=0; j<13 && flag; j++) {
if (minVal[j].data>in) {
flag = false;
for (int i2=12; i2>j; i2--) {
minVal[i2] = minVal[i2-1];
}
minVal[j] = {in, i};
}
}
}
float result = INT_MAX;
float mult = .0f;
int delta = 0;
for (int i=0; i<12; i++) {
for (int j=i+1; j<13; j++) {
mult = minVal[i].data*minVal[j].data;
delta = abs(minVal[i].pos-minVal[j].pos);
if (delta>=6 && result>mult) {
result = minVal[i].data*minVal[j].data;
}
}
}
cout<<result<<endl;
return 0;
}