#include<bits/stdc++.h>
using namespace std;
struct dat{
	int w,pos;
}tmp;
int t,n,k,m,a,x[310][3],num[310];
map<int,dat> mp;
int main()
{
	freopen("meow.in","r",stdin);
	freopen("meow.out","w",stdout);
	scanf("%d",&t);
	while(t--)
	{
		mp.clear();
		memset(num,0,sizeof(num));
		scanf("%d%d%d",&n,&m,&k);
		for(int i=1;i<=m;i++)
		{
			scanf("%d",&a);
			if(!mp.count(a))
			{
				for(int j=1;j<=n;j++)
				{
					if(num[j]==1)
					{
						x[j][2]=a;
						tmp.w=j;
						tmp.pos=2;
						mp[a]=tmp;
						printf("1 %d\n",j);
						num[j]++;
						break;
					}
					if(num[j]==0)
					{
						x[j][1]=a;
						tmp.w=j;
						tmp.pos=1;
						mp[a]=tmp;
						printf("1 %d\n",j);
						num[j]++;
						break;
					}
				}
				continue;
			}
			tmp=mp[a];
			if(tmp.pos==2)
			{
				printf("1 %d\n",tmp.w);
				mp.erase(a);
				num[tmp.w]--;
			}
			if(tmp.pos==1)
			{
				printf("1 %d\n",n);
				printf("2 %d %d\n",tmp.w,n);
				mp.erase(a);
				x[tmp.w][1]=x[tmp.w][2];
				num[tmp.w]--;
				if(num[tmp.w]>0)
				{
					tmp.pos=1;
					mp[x[tmp.w][1]]=tmp;
				}
			}
		}
	}
	return 0;
}