#include <bits/stdc++.h>
using namespace std;
int sequence(int N, vector<int> A){
int mx = 0;
// compress values (important if A[i] is large)
vector<int> comp = A;
sort(comp.begin(), comp.end());
comp.erase(unique(comp.begin(), comp.end()), comp.end());
for(int i = 0; i < N; i++){
int M = comp.size();
vector<int> cnt(M, 0);
for(int j = i; j < N; j++){
// add A[j]
int id = lower_bound(comp.begin(), comp.end(), A[j]) - comp.begin();
cnt[id]++;
int len = j - i + 1;
int lpos = (len - 1) / 2;
int rpos = len / 2;
int cur = 0;
int leftMedian = -1, rightMedian = -1;
for(int k = 0; k < M; k++){
cur += cnt[k];
if(leftMedian == -1 && cur > lpos){
leftMedian = k;
}
if(cur > rpos){
rightMedian = k;
break;
}
}
int freqL = cnt[leftMedian];
int freqR = cnt[rightMedian];
int best = max(freqL, freqR);
mx = max(mx, best);
}
}
return mx;
}