1 #include<cstdio>
2 #include<iostream>
3 #include<cmath>
4 #include<cstring>
5 #include<algorithm>
6 #define maxn 25
7 using namespace std;
8 char ch;
9 int T,n,a[maxn],sg[maxn],tmp,cnt;
10 bool ok,bo[maxn*maxn*maxn],first;
11 void read(int &x){
12 for (ok=0,ch=getchar();!isdigit(ch);ch=getchar()) if (ch==‘-‘) ok=1;
13 for (x=0;isdigit(ch);x=x*10+ch-‘0‘,ch=getchar());
14 if (ok) x=-x;
15 }
16 void calc(int i){
17 for (int j=i+1;j<=n;j++) if (sg[j]==-1) calc(j);
18 for (int j=i+1;j<=n;j++)
19 for (int k=j;k<=n;k++) bo[sg[j]^sg[k]]=1;
20 for (int j=0;;j++) if (!bo[j]){sg[i]=j;break;}
21 for (int j=i+1;j<=n;j++)
22 for (int k=j;k<=n;k++) bo[sg[j]^sg[k]]=0;
23 }
24 int main(){
25 for (read(T);T;T--){
26 read(n);
27 for (int i=1;i<=n;i++) read(a[i]);
28 memset(sg,-1,sizeof(sg)),sg[n]=0,tmp=0;
29 for (int i=1;i<n;i++) if (sg[i]==-1) calc(i);
30 for (int i=1;i<n;i++) if (a[i]&1) tmp^=sg[i];
31 if (tmp){
32 first=1,cnt=0;
33 for (int i=1;i<=n;i++) if (a[i])
34 for (int j=i+1;j<=n;j++)
35 for (int k=j;k<=n;k++)
36 if (!(tmp^sg[i]^sg[j]^sg[k])){
37 if (first) printf("%d %d %d\n",i-1,j-1,k-1),first=0;
38 cnt++;
39 }
40 printf("%d\n",cnt);
41 }
42 else puts("-1 -1 -1"),puts("0");
43 }
44 return 0;
45 }