#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef double db;
#define MADE_IN_HEAVEN ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
const int M=2e6+10,N=310;
int t,n,m,k;
int a[M];
int u[N],d[N];
int nx[N];
//int st[5][M],h[5],tail[5];
//bool dfs(int deep){
//	if(deep>m){
//		for(int i=1;i<=3;i++){
//			if(h[i]!=tail[i]) return 0;
//		}
//		return 1;
//	}
//	for(int i=1;i<=3;i++){
//		if()
//	}
//}
int main(){
	freopen("meow.in","r",stdin);
	freopen("meow.out","w",stdout);
	MADE_IN_HEAVEN
	cin>>t;
		while(t--){
			memset(u,0,sizeof u);
			memset(d,0,sizeof d);
			cin>>n>>m>>k;
			for(int i=1;i<=m;i++){
				cin>>a[i];
			}
			for(int i=1;i<n;i++) nx[i]=i;
			for(int i=n;i<2*n-1;i++) nx[i]=i-n+1;
			int op=0;
			for(int i=1;i<=m;i++){
				if(u[nx[a[i]]]==a[i]){
					u[nx[a[i]]]=0;
					op++;
				}
				else if(d[nx[a[i]]]==a[i]){
					d[nx[a[i]]]=0;
					op+=2;
				}
				else{
					if(d[nx[a[i]]]==0){
						d[nx[a[i]]]=a[i];
				//		cout<<"1 "<<nx[a[i]]<<"\n";
					}
					else{
						u[nx[a[i]]]=a[i];
			//			cout<<"1 "<<nx[a[i]]<<"\n";
					}
					op++;
				}
			}
			cout<<op<<"\n";
			for(int i=1;i<=m;i++){
				if(u[nx[a[i]]]==a[i]){
					u[nx[a[i]]]=0;
					cout<<"1 "<<nx[a[i]]<<"\n";
				}
				else if(d[nx[a[i]]]==a[i]){
					d[nx[a[i]]]=0;
					cout<<"1 "<<n<<"\n";
					cout<<"2 "<<nx[a[i]]<<" "<<n<<"\n";
				}
				else{
					if(d[nx[a[i]]]==0){
						d[nx[a[i]]]=a[i];
						cout<<"1 "<<nx[a[i]]<<"\n";
					}
					else{
						u[nx[a[i]]]=a[i];
						cout<<"1 "<<nx[a[i]]<<"\n";
					}
				}
			}
		}
	return 0;
}