#include<bits/stdc++.h>
using namespace std;
const int N=301,M=100010;
int main(){
	freopen("meow.in","r",stdin);
	freopen("meow.out","w",stdout);
	int ti;
	cin>>ti;
	while(ti--){
		int n,m,k,t=0,cnt=0;
		int a[M],a1=0,id1,c=0;
		int ap[M],bp[M][2];
		int p1[N],p2[N];
		bool b[M];
		memset(b,false,sizeof b);
		memset(a,0,sizeof a);
		memset(bp,0,sizeof bp);
		memset(ap,0,sizeof ap);
		for(int i=1;i<=m;i++) cin>>a[i];
		for(int i=1;i<=n;i++){
			if(t<n-1){
				b[++cnt]=true;
				int id=0,x=0;
				for(int i=1;i<=t;i++){
					if(p1[i]==0&&id==0) id=i;
					if(p1[i]==a[i]){
						ap[cnt]=i;
						x=1;
						p1[i]=0;
						break;
					}
				}
				if(x==0){
					p1[++t]=a[i];
					ap[cnt]=t;
				}
			}
			else if(t<=2*n-2){
				int x=0,id=0,y=0;
				for(int i=1;i<n;i++){
					if(p1[i]==0&&id==0){
						id=i;
						y=1;
					}
					if(p1[i]==a[i]){
						if(p2[i]==0){
							b[++cnt]=true;
							ap[cnt]=i;
							p1[i]==0;
						}
						else{
							p1[i]=p2[i];
							p2[i]=0;
							bp[++cnt][0]=i;
							bp[cnt][1]=n;
						}
						x=1;
						break;
					}
				}
				if(x==0){
					for(int i=1;i<=t-n+1;i++){
						if(p2[i]==0&&id==0) id=i;
						if(p2[i]==a[i]){
							p2[i]=0;
							b[++cnt]=true;
							ap[cnt]=i;
							x=1;
							break;
						}
					}
					if(x==0){
						if(y==1){
							p1[id]=a[i];
							b[++cnt]=true;
							ap[cnt]=i;
						}
						else if(id>0){
							p2[id]=a[i];
							b[++cnt]=true;
							ap[cnt]=id;
						}
						else{
							t++;
							if(t<=2*n-2){
								p2[t-n+1]=a[i];
								b[++cnt]=true;
								ap[cnt]=t-n+1;
							}
							else a1=a[i];
						}
					}
				}
			}
			else{
				if(a1==a[i]){
					a1=0;
					if(c==0){
						b[++cnt]=true;
						b[++cnt]=true;
						ap[cnt-1]=n;
						ap[cnt]=n;
					}
					else{
						b[++cnt]=true;
						ap[cnt]=n;
					}
					t--;
				}
				else{
					for(int i=1;i<n;i++){
						if(p1[i]==a[i]&&c==0){
							p1[i]=p2[i];
							p2[i]=a[i];
							b[++cnt]=true;
							ap[cnt]=i;
							b[++cnt]=true;
							ap[cnt]=n;
							bp[++cnt][0]=i;
							bp[cnt][1]=n;
							t--;
							a1=0;
							break;
						}
						else if(p2[i]==a[i]){
							id1=i;
							p2[i]=0;
							b[++cnt]=true;
							ap[cnt]=n;
							b[++cnt]=true;
							ap[cnt]=i;
							break;
						}
					}
					c=1;
				}
			}
		}
		cout<<cnt<<endl;
		for(int i=1;i<=cnt;i++){
			if(b[i]) cout<<1<<' '<<ap[i]<<endl;
			else cout<<2<<' '<<bp[i][0]<<' '<<bp[i][1]<<endl;
		}
	}
	return 0;
}