#include<bits/stdc++.h>
using namespace std;
int T,n,m,k,a[2000005],cnt;
deque<int>s[305];
struct op{
	int x,y,z;
}p[2000005];
void print(){
	printf("%d\n",cnt);
	for(int i=1;i<=cnt;i++){
		if(p[i].x==1){
			printf("%d %d\n",p[i].x,p[i].y);
		}
		else printf("%d %d %d\n",p[i].x,p[i].y,p[i].z);
	}
}
void solve1(){
	while(T--){
		scanf("%d%d%d",&n,&m,&k);
		cnt=0;
		for(int i=1;i<=m;i++)scanf("%d",&a[i]),s[i].clear();
		for(int i=1;i<=m;i++){
			int pos=(a[i]+1)/2;
			if(s[pos].empty()){
				s[pos].push_front(a[i]);
				p[++cnt]={1,pos,0};
			//	printf("1 %d\n",pos);
			}
			else if(s[pos].front()==a[i]){
				s[pos].pop_front();
				p[++cnt]={1,pos,0};
			//	printf("1 %d\n",pos);
			}
			else if(s[pos].back()==a[i]){
				s[pos].pop_back();
				p[++cnt]={1,n,0};
			//	printf("1 %d\n",n);
				p[++cnt]={2,pos,n};
			//	printf("2 %d %d\n",pos,n);
			}
			else{
				s[pos].push_front(a[i]);
			//	printf("1 %d\n",pos);
				p[++cnt]={1,pos,0};			
			}
		}
		print();		
	}
}
void solve2(){
	deque<int>nxt;
	while(T--){
		scanf("%d%d%d",&n,&m,&k);
		cnt=0;
		nxt.clear();
		for(int i=1;i<=m;i++)scanf("%d",&a[i]),s[i].clear();
		for(int i=1;i<=m;i++){
			if(a[i]==a[i+1]){
				i++;
				p[++cnt]={1,1,0};
				p[++cnt]={1,1,0};									
			}
			else if(s[1].empty()){
				p[++cnt]={1,1,0};
				s[1].push_front(a[i]);
				nxt.push_front(a[i]);			
			}
			else if(s[1].front()==a[i]){
				s[1].pop_front();
				p[++cnt]={1,1,0};
				nxt.pop_front();
			}
			else if(a[i]==nxt.back()){
				s[2].push_front(a[i]);
				p[++cnt]={1,2,0};
				p[++cnt]={2,1,2};
				s[2].pop_back();
				s[1].pop_back();
				nxt.pop_back();
			}
			else{
				p[++cnt]={1,1,0};
				s[1].push_front(a[i]);
				nxt.push_front(a[i]);				
			}
		}
		print();
	}
}

void solve3(){
	while(T--){
		scanf("%d%d%d",&n,&m,&k);
		cnt=0;
		for(int i=1;i<=m;i++)scanf("%d",&a[i]),s[i].clear();
	}	
}
signed main(){
	freopen("meow.in","r",stdin);
	freopen("meow.out","w",stdout);
	scanf("%d",&T);
	if(T==1001){
		solve1();
	}
	if(T==1002){
		solve2();
	}
	if(T==3){
		solve3();
	}
	return 0;
}