#include<bits/stdc++.h>
using namespace std;

int n,m,k,a[2000010];
vector<int> st[310];
queue<pair<int,int>> Q;
void search(int p)
{
	if(p==m+1)
	{
		bool emp=true;
		for(int i=1;i<=n;i++)
			if(!st[i].empty())
			{
				emp=false;
				break;
			}
		if(emp)
		{
			while(!Q.empty())
			{
				if(Q.front().first==1)
					cout<<1<<" "<<Q.front().second<<endl;
				else
					cout<<2<<" "<<Q.front().first-1<<" "<<Q.front().second<<endl;
				Q.pop();
			}
		}
		return;
	}
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			if(!st[i].empty() && !st[j].empty())
				if(st[i][0]==st[j][0])
				{
					st[i].erase(st[i].begin());
					st[j].erase(st[j].begin());
					Q.push({i+1,j});
					break;
				}
	for(int i=1;i<=n;i++)
	{
		st[i].push_back(a[p]);
		Q.push({1,i});
		search(p+1);
		Q.pop();
		st[i].pop_back();
	}
}
int main()
{
	freopen("meow.in","r",stdin);
	freopen("meow.out","w",stdout);
	int T;
	scanf("%d",&T);
	for(int I=1;I<=T;I++)
	{
		scanf("%d%d%d",&n,&m,&k);
		for(int i=1;i<=m;i++)
			scanf("%d",&a[i]);
		st[1].push_back(a[1]);
		Q.push({1,1});
		search(2);
	}
	return 0;
}