#include using namespace std; vector c; int n; bool isCorrect(vector &v, int ind, int sz) { int cur = 0; int el = v[cur]; for(int k = n-1; k >ind; k--) { if(c[k] == el) { cur++; if(cur >= sz) return true; el = v[cur]; } } return false; } int main() { int max; ios::sync_with_stdio(false); while(scanf("%d", &n) == 1) { max = 0; c.clear(); c.resize(n); for(int i = 0; i < n; i++) { scanf("%d",&c[i]); } vector mv(n); for(int i = 0; i < n; i++) { int sz = 0; for(int j = i; j < n; j++) { mv[sz++] = c[j]; if(!isCorrect(mv,j,sz)) sz--; } if(sz > max) max = sz; } cout << max << endl; } return 0; }