#include using namespace std; using lli = int64_t; int solve (vector> & dp, vector & a, int i, int j) { if (dp[i][j] != -1) return dp[i][j]; if (i >= j) return (dp[i][j] = 0); return (dp[i][j] = max ({solve (dp, a, i+1, j), solve (dp, a, i, j-1), solve (dp, a, i+1, j-1) + (a[i] == a[j]?1:0)})); } int main () { for (;;) { lli n; cin >> n; if (!cin) break; auto a = vector (n); for (auto & ai : a) cin >> ai; auto dp = vector> (n, vector (n, -1)); cout << solve (dp, a, 0, n-1) << '\n'; } return 0; }