#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,nn;
int f[220][2];//f[i][0]=head,f[i][1]=tail
int w[220][220];
int final;
int q(int a,int b)
{
if(a>b)
return a;
return b;
}
int main()
{
cin>>n;
for(int i=1;i<=n;++i)
{
cin>>nn;
f[i][0]=nn;
f[i-1][1]=nn;
f[i+n][0]=nn;
f[i+n-1][1]=nn;
}
f[0][0]=f[n][1];
f[n+n][1]=f[n][1];
for(int i=1;i<=n;++i)
{
for(int l=1;l<=n;++l)
{//区间[l~r],f[l][r],r=l+i,f[l][0]*f[k][1]*f[r][1]
for(int k=l;k<l+i;++k)
{
w[l][l+i]=q(w[l][l+i],f[l][0]*f[k][1]*f[l+i][1]);
}
}
}
cout<<w[1][n];
return 0;
}