#include<bits/stdc++.h>
using namespace std;
const int N=200005;
int T,n,a[N];
vector<int>vt[N],vc;
void init(){
	vc.emplace_back(0);
	for(int i=1;i<=n;++i)vc.emplace_back(a[i]);
	sort(vc.begin(),vc.end());
	vc.erase(unique(vc.begin(),vc.end()),vc.end());
	for(int i=1;i<=n;++i){
		a[i]=lower_bound(vc.begin(),vc.end(),a[i])-vc.begin();
	}
}
void clear(){
	for(int i=1;i<=n;++i)vector<int>().swap(vt[i]);
	vc.clear();
}
namespace sub1{
	int ct[303],pre[N],mx;
	bool vis[303];
	void work(){
		mx=0;
		for(int x=1;x<=n;++x)if(vt[x].size()){
			int tot=vt[x].size();
			for(int i=1;i<=n;++i)
				pre[i]=pre[i-1]+(a[i]==x);
			vt[x].emplace_back(0);
			for(int p:vt[x]){
				memset(ct,0,sizeof ct);
				int nmx=0;
				for(int i=p+1;i<=n;++i){
					nmx=max(nmx,++ct[a[i]]);
					int w=tot-(pre[i]-pre[p])+nmx;
					if(mx==w)vis[x]=1;
					else if(mx<w){
						memset(vis,0,sizeof vis);
						mx=w;
						vis[x]=1;
					}
				}
			}
		}
		cout<<mx<<'\n';
		for(int i=1;i<(int)vc.size();++i)if(vis[i])
			cout<<vc[i]<<'\n';
	}
}
int main(){
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	for(cin>>T;T--;){
		cin>>n;
		for(int i=1;i<=n;++i)cin>>a[i];
		init();
		for(int i=1;i<=n;++i)vt[a[i]].emplace_back(i);
		if(n<=300)sub1::work();
		clear();
	}
}
