#include<bits/stdc++.h>
const int M=1e6+5;
using namespace std;
typedef long long ll;
ll a[M],suf[M];
const ll inf=-2e18;
set<int>s;
int main()
{
ll ans=inf;
int lf=-1234567;
int n;
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
suf[n-1]=a[n-1];
for(int i=n-2;i>=0;i--)
suf[i]=max(suf[i+1],a[i]);
s.insert(lf);
for(int i=0;i<n-1;i++)
{
auto it=s.lower_bound(a[i]);
it--;
ll tp=(*it);
if(tp!=lf && suf[i+1]>a[i])
ans=max(ans,1LL*tp*a[i]*suf[i+1]);
s.insert(a[i]);
}
if(ans==inf)
cout<<"-1";
else
cout<<ans;
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KY29uc3QgaW50IE09MWU2KzU7CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnR5cGVkZWYgbG9uZyBsb25nIGxsOwpsbCBhW01dLHN1ZltNXTsKY29uc3QgbGwgaW5mPS0yZTE4OwpzZXQ8aW50PnM7CmludCBtYWluKCkKewoJbGwgYW5zPWluZjsKCWludCBsZj0tMTIzNDU2NzsKCWludCBuOwoJY2luPj5uOwoJZm9yKGludCBpPTA7aTxuO2krKykgCgkJY2luPj5hW2ldOwoJc3VmW24tMV09YVtuLTFdOwoJZm9yKGludCBpPW4tMjtpPj0wO2ktLSkKCXN1ZltpXT1tYXgoc3VmW2krMV0sYVtpXSk7CglzLmluc2VydChsZik7Cglmb3IoaW50IGk9MDtpPG4tMTtpKyspCgl7CgkJYXV0byBpdD1zLmxvd2VyX2JvdW5kKGFbaV0pOwoJCWl0LS07CgkJbGwgdHA9KCppdCk7CgkJaWYodHAhPWxmICYmIHN1ZltpKzFdPmFbaV0pCgkJYW5zPW1heChhbnMsMUxMKnRwKmFbaV0qc3VmW2krMV0pOwoJCXMuaW5zZXJ0KGFbaV0pOwoJfQoJaWYoYW5zPT1pbmYpCgljb3V0PDwiLTEiOwoJZWxzZQoJY291dDw8YW5zOwoJcmV0dXJuIDA7Cn0=