#include<bits/stdc++.h>
#define FILE "read"
using namespace std;
const int MAXN=(int)1e4,D=50;
int ans[5],a[25],check[MAXN+D],sg[MAXN+D];
namespace INIT{
char buf[1<<15],*fs,*ft;
inline char getc(){return (fs==ft&&(ft=(fs=buf)+fread(buf,1,1<<15,stdin),fs==ft))?0:*fs++;}
inline int read(){
int x=0,f=1; char ch=getc();
while(!isdigit(ch)) {if(ch=='-') f=-1; ch=getc();}
while(isdigit(ch)) {x=x*10+ch-'0'; ch=getc();}
return x*f;
}
}using namespace INIT;
void solve(){
int n=read();
for(int i=1;i<=n;++i) a[i]=read();
memset(check,0,sizeof(check));
memset(sg,0,sizeof(sg));
memset(ans,0,sizeof(ans));
for(int i=n-1;i;--i){
for(int j=i+1;j<=n;++j)for(int k=j;k<=n;++k)check[sg[j]^sg[k]]=i;
for(int j=0;j<=MAXN;++j)if(check[j]!=i){sg[i]=j;break;}
}
for(int i=1;i<=n;++i)if(a[i]&1)ans[0]^=sg[i];
for(int i=n-1;i;--i)for(int j=n;j>=i+1;--j)for(int k=n;k>=j;--k)
if((ans[0]^sg[i]^sg[j]^sg[k])==0) ans[1]=i,ans[2]=j,ans[3]=k,ans[4]++;
printf("%d %d %d\n%d\n",ans[1]-1,ans[2]-1,ans[3]-1,ans[4]);
}
int main(){
freopen(FILE".in","r",stdin);
freopen(FILE".out","w",stdout);
for(int T=read();T;--T) solve();
return 0;
}