#include <bits/stdc++.h>
using namespace std;
const int N=2e5+10;
int cnt,ans[N][3],n,m,siz[N],a[N],now[N][3];
void print()
{
	printf("%d\n",cnt);
	for(int i=1;i<=cnt;i++)
	{
		printf("%d ",ans[i][0]);
		if(ans[i][0]==1) printf("%d\n",ans[i][1]);
		else printf("%d %d\n",ans[i][1],ans[i][2]);
	}
}
void add(int op,int x,int y)
{
	ans[++cnt][0]=op;ans[cnt][1]=x;ans[cnt][2]=y;
}
namespace pt15
{
	void solve()
	{
		cnt=0;
		for(int i=1;i<=m;i++)
		{
			int bel=a[i]%(n-1)+1;
			if(siz[bel]<2)
			{
				now[bel][++siz[bel]]=a[i];
				if(siz[bel]==2&&now[bel][1]==now[bel][2])
					siz[bel]=0;
				add(1,bel,0);
			}
			else
			{
				if(now[bel][1]==a[i])
				{
					add(1,n,0),add(2,bel,n);
					siz[bel]--;now[bel][1]=now[bel][2];
				}
				else add(1,bel,0),siz[bel]--;
			}
		}
		print();
	}
}
int main()
{
	freopen("meow.in","r",stdin);
	freopen("meow.out","w",stdout);
	int T,k;
	scanf("%d",&T);
	while(T--)
	{
		scanf("%d %d %d",&n,&m,&k);
		for(int i=1;i<=m;i++)
			scanf("%d",&a[i]);
		if(k==2*n-2) pt15::solve();
	}
	return 0;
}
