#include<cstdlib>
#include<cstdio>
#include<iostream>
#include<vector>
using namespace std;
const int N=2000010;
vector<int> f[310];
int head[310],tail[310];
int t,n,m,k,a[100],tt[310][610];
bool bb;
int main()
{
	freopen("meow.in","r",stdin);
	freopen("meow.out","w",stdout);
	scanf("%d",&t);
	while(t--)
	{
		
		scanf("%d%d%d",&n,&m,&k);
		for(int i=1;i<=m;i++)
		  scanf("%d",&a[i]);
		for(int i=1;i<=m;i++)
		{
			bb=true;
			for(int j=1;j<=n;j++)
				if(tail[j]!=head[j])
				{
					if(f[j][tail[j]-1]==a[i])
					{
						printf("1 %d\n",j);
						tail[j]--;
						bb=false;
						break;
					}
				}	
			if(bb)
			{
				for(int j=1;j<=n;j++)
				if(head[j]!=tail[j])
				{
					if(f[j][head[j]]==a[i]) 
					{
						printf("1 %d\n",n);
						printf("2 %d %d\n",j,n);
						head[j]++;
						bb=false;
						break;
					}
				}
			if(!bb)
			{
				bool b=true;
				while(b)
				{
					b=false;
					for(int ii=1;ii<=n;ii++)
					  for(int j=ii+1;j<=n;j++)
					    if(head[ii]!=tail[ii]&&head[j]!=tail[j])
						while(f[ii][head[ii]]==f[j][head[j]])
					    {
					    	printf("2 %d %d\n",ii,j);
					    	head[ii]++;
					    	head[j]++;
							b=true;
					    	if(head[ii]==tail[j]||head[j]==tail[j]) break;
					    	
						}
				}
			}
			}
			if(bb)
			{
				bool b2=true;
				for(int j=1;j<n;j++)
				  if(tt[j][a[i]]==0)  
				  {
				  	printf("1 %d\n",j);
				  	tt[j][a[i]]=1;
				  	tail[j]++;
				  	f[j].push_back(a[i]);
				  	b2=false;
				  	break;
				  }
				if(b2)
				{
					printf("1 1\n");
					tail[1]++;
					f[1].push_back(a[i]);
				}
			}
		}
	}
	return 0;
}