/*
统计1-200的前缀和,然后枚举i为第一段的右端点,可以直接推出第三段的左端点,然后在中间那一块找最大值就行
*/
#include<bits/stdc++.h>
using namespace std;
#define N 200005
int n,a[N],sum[205][N];
vector<int>p[205];
int main(){
int t;cin>>t;
while(t--){
cin>>n;
for(int i=1;i<=n;i++)scanf("%d",&a[i]);
for(int i=1;i<=200;i++){
for(int j=1;j<=n;j++)
if(a[j]==i)sum[i][j]=sum[i][j-1]+1;
else sum[i][j]=sum[i][j-1];
}
for(int i=1;i<=n;i++)
p[a[i]].push_back(i);
int ans=0;
for(int i=1;i<=n;i++){
int s=p[a[i]].size();
int p1=lower_bound(p[a[i]].begin(),p[a[i]].end(),i)-p[a[i]].begin();
int p2=s-1-p1;
if(p2<p1)continue;
if(p2==p1){
ans=max(ans,2*p1+1);
continue;
}
int l=i,r=p[a[i]][p2];
int Max=0;
for(int i=1;i<=200;i++)
Max=max(Max,sum[i][r-1]-sum[i][l]);
ans=max(ans,Max+2*(p1+1));
}
cout<<ans<<'\n';
for(int i=1;i<=200;i++){
p[i].clear();
for(int j=1;j<=n;j++)sum[i][j]=0;
}
}
}