#include <bits/stdc++.h>
using namespace std;
const int N = 210;
int a[N], b[N], c[N];
long long f[N][N][N];
int main()
{
int n; scanf("%d", &n);
for(int i = 1; i <= n; ++i) scanf("%d", &a[i]);
int m = 0;
for(int i = 1; i <= n; ++i)
if(a[i] != a[i - 1]) b[++m] = a[i], c[m] = 1;
else ++c[m];
for(int i = 1; i <= m; ++i)
for(int k = 0; k <= n; ++k)
f[i][i][k] = (c[i] + k) * (c[i] + k);
for(int len = 2; len <= m; ++len)
for(int l = 1; l <= m - len + 1; ++l)
{
int r = l + len - 1;
for(int k = 0; k <= n; ++k)
{
f[l][r][k] = f[l][r - 1][0] + (c[r] + k) * (c[r] + k);
for(int x = l; x < r; ++x)
if(b[x] == b[r])
f[l][r][k] = max(f[l][r][k], f[l][x][c[r] + k] + f[x + 1][r - 1][0]);
}
}
printf("%lld\n", f[1][m][0]);
return 0;
}