#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define PII pair<int,int>
#define fir first
#define sec second
const int N=2e6+10;
const int mod= 998244353;
const int INF=1e9+7;

#define wr(i,l,r) for(int i=l;i<=r;i++)


int rd(){
	int x=0,f=1;
	char ch=getchar();
	while(ch<'0'||ch>'9'){
		if(ch=='-') f=-1;
		ch=getchar();
	}
	while(ch>='0'&&ch<='9'){
		x=x*10+ch-'0';
		ch=getchar();
	}
	return x*f;
}

int T;
int n,m,k;
int a[N];
//case 1
int tot;
int b[1000],c[1000],stck,g[1000],st[1000][3];
int stt[2000010];
pair<int,int> op[N];

int main(){
	freopen("meow.in","r",stdin);
	freopen("meow.out","w",stdout);
	T=rd();
	if(T==1002){
		while(T--){
			n=rd(),m=rd(),k=rd();
			wr(i,1,m){
				a[i]=rd();
			}
			tot=0;
			memset(stt,0,sizeof(stt));
			int top=0,bot=1;
			
			wr(i,1,m){
				if(stt[top]==a[i]&&top>=bot)
				{
					top--;
					op[++tot].fir=1;
					op[tot].sec=0;
				}
				else{
					if(stt[bot]==a[i]&&top>=bot)
					{
						bot++;
						op[++tot].fir=2;
						op[tot].sec=0;
						op[++tot].fir=1;
						op[tot].sec=2;
					}
					else{
						stt[++top]=a[i];
						op[++tot].fir=1;
						op[tot].sec=0;
					}
				}
			}
			
			cout<<tot<<endl;
			wr(i,1,tot){
				if(op[i].sec==0){
					cout<<1<<" "<<op[i].fir<<endl;
				}
				else{
					cout<<2<<" "<<op[i].fir<<" "<<op[i].sec<<endl;
				}
			}
     	}
	}
	else{
		while(T--){
			n=rd(),m=rd(),k=rd();
			wr(i,1,m){
				a[i]=rd();
			}
			tot=0;
			
			memset(b,0,sizeof(b));
			memset(c,0,sizeof(c));
			memset(g,0,sizeof(g));
			memset(st,0,sizeof(st));
			wr(i,1,m){
				if(b[a[i]]==2){
					stck=c[a[i]];
					op[++tot].fir=stck;
			        op[tot].sec=0;
					st[stck][2]=0;
					b[a[i]]=c[a[i]]=0;
					//cout<<1<<endl;
				}
				else{
					if(b[a[i]]==1){
						stck=c[a[i]];
						op[++tot].fir=n;
						op[tot].sec=0;
						op[++tot].fir=stck;
						op[tot].sec=n;
						b[g[a[i]]]=1;
			
						b[a[i]]=c[a[i]]=0;
						//cout<<2<<endl;
					}
					else{
						wr(k,1,n-1){
							if(st[k][1]==0){
								b[a[i]]=1;
								c[a[i]]=k;
								st[k][1]=a[i];
								op[++tot].fir=k;
				                op[tot].sec=0;
								break;
							}
							else{
								if(st[k][2]==0){
									b[a[i]]=2;
									c[a[i]]=k;
									g[st[k][1]]=a[i];
									st[k][2]=a[i];
									op[++tot].fir=k;
						            op[tot].sec=0;
									break;
								}
							}
						}
					}
				}
			}
			
			cout<<tot<<endl;
			wr(i,1,tot){
				if(op[i].sec==0){
					cout<<1<<" "<<op[i].fir<<endl;
				}
				else{
					cout<<2<<" "<<op[i].fir<<" "<<op[i].sec<<endl;
				}
			}
	    }
	}
	
	return 0;
}
/*
3
4 12 6
6 5 4 3 2 1 6 5 4 3 2 1
4 12 6
6 4 5 1 2 3 6 5 4 3 2 1
2 8 4
4 3 3 2 4 1 2 1
*/

