#include<bits/stdc++.h>
using namespace std;
#define M 105
int rd(){
	int x;scanf("%d",&x);
	return x;
}
bool cmp(int a,int b){
	printf("1 %d %d\n",a,b);fflush(stdout);	
	return rd();
}
int ls[M],id[M],sk[M];
int main(){
	int t;
	t=rd();
	while(t--){
		int n,cnt=0;
		n=rd();
		for(int i=1;i<=n;++i)sk[i]=i-1;
		stable_sort(sk+1,sk+n+1,cmp);
		for(int i=1;i<=n;++i){
			ls[++cnt]=i;
			while(cnt>1){
				printf("2 %d %d ",sk[i],ls[cnt]-1);
				for(int j=1;j<ls[cnt];++j)printf("%d ",sk[j]);
				puts("");fflush(stdout);
				if(rd())--cnt;
				else break;
			}		
		}ls[++cnt]=n+1;
		for(int i=1;i<cnt;++i)
			for(int j=ls[i];j<ls[i+1];++j)id[sk[j]]=i;
		puts("3");
		for(int i=0;i<n;++i){
			for(int j=0;j<n;++j)printf("%d",id[i]<=id[j]);
			puts("");
		}fflush(stdout);
		if(rd()==-1)break;
	}
}
 	 	 	   		  				  				 	  				