#include<bits/stdc++.h>
using namespace std;
int s[2020000],t[1000],iter[1000],nxt[1000];
vector<int> vec[555];
queue<int> q1,q2;
struct oper{int type,x,y;};
vector<oper> Op;
vector<int> r[555];
void solve(){
	int n,m,k;
	cin>>n>>m>>k;
	for(int i=1;i<=n;++i)
		r[i].clear();
	for(int i=1;i<=m;++i)
		cin>>s[i],r[s[i]].push_back(i);
	for(int i=1;i<=n;++i){
		iter[i]=0;
		if(r[i].size())
			nxt[i]=r[i][0];
	}
	while(!q1.empty())q1.pop();
	while(!q2.empty())q2.pop();
	for(int i=1;i<n;++i)
		q1.push(i),vec[i].clear();
	for(int i=1;i<=k;++i)
		t[i]=0;
	if(k==2*n-2){
		for(int i=1;i<=m;++i){
			int v=s[i],p=t[v];
			if(p){
				if((*vec[p].begin())==v){
					Op.emplace_back((oper){1,n,0});
					Op.emplace_back((oper){2,p,n});
					q2.push(p);vec[p].erase(vec[p].begin());
					t[v]=0;
				}else{
					Op.emplace_back((oper){1,p,0});
					q1.push(p),t[v]=0,vec[p].clear();
				}
			}else{
				if(!q1.empty())t[v]=q1.front(),q2.push(q1.front()),q1.pop(),vec[t[v]].push_back(v),Op.emplace_back((oper){1,t[v],0});
				else t[v]=q2.front(),q2.pop(),vec[t[v]].push_back(v),Op.emplace_back((oper){1,t[v],0});
			}
		}
	}else {
		for(int i=1;i<=m;++i){
			int v=s[i],p=t[s[i]];
			++iter[v];
			if(iter[v]!=r[v].size())
				nxt[v]=r[v][iter[v]];
			if(!p){
				for(int j=1;j<=n;++j){
					if(!vec[j].size()){Op.push_back((oper){1,j,0}),vec[j].push_back(v);t[v]=j;break;}
					int Mx=-1,Mi=-12;
					for(int p=0;p<(int)vec[j].size();++p)
						if(nxt[vec[j][p]]>Mx)Mi=p,Mx=nxt[vec[j][p]];
					if(Mi!=(int)vec[j].size()-1&&nxt[vec[j].back()]>nxt[v]){
						Op.push_back((oper){1,j,0}),vec[j].push_back(v);t[v]=j;break;
					}else if(Mi==(int)vec[j].size()-1){
						Op.push_back((oper){1,j,0}),vec[j].push_back(v);t[v]=j;break;
					}
				}
			}else{
				if(vec[p].back()==v){
					Op.push_back((oper){1,p,0});
					vec[p].pop_back();
				}else {
					Op.push_back((oper){1,n,0});
					Op.push_back((oper){2,n,p});
					vec[p].erase(vec[p].begin());
				}
			}
		}
	}
	for(auto i:Op){
		if(i.type==1)
			cout<<i.type<<' '<<i.x<<'\n';
		else	
			cout<<i.type<<' '<<i.x<<' '<<i.y<<'\n';
	}	
	Op.clear();
}
int main(){
	freopen("meow.in","r",stdin);
	freopen("meow.out","w",stdout);
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
	int T;
	cin>>T;
	while(T--){
		solve();
	}
}