#include<bits/stdc++.h>
using namespace std;
int t,n,m,k,a[1000010],b[310],c[310][10010],d[310],dd[1000010],e[1000010][3];
int sss,ssss;
bool q(int qq,int mmm){
	if(qq>m || mmm>2*m+1) return false;
	if(qq==m){
		bool ff=true;
		for(int i=1;i<=n;i++){
			if(d[i]!=b[i]) ff=false;
		}
		if(ff==true){
			sss=mmm-1;
			ssss=mmm-1;
			return true;
		}
	}
	for(int ii=1;ii<=2;ii++){
		if(ii==1){
			for(int i=1;i<=n;i++){
				b[i]++;
				c[i][b[i]]=a[qq+1];
				if(d[i]<b[i]-1 && c[i][b[i]]==c[i][b[i]-1]){
					b[i]-=2;
					if(q(qq+1,mmm+1)==true){
						b[i]++;
						dd[sss]=1;
						e[sss][1]=i;
						sss--;
						return true;
					}else{
						b[i]++;
					}
				}else{
					if(q(qq+1,mmm+1)==true){
						b[i]--;
						dd[sss]=1;
						e[sss][1]=i;
						sss--;
						return true;
					}else{
						b[i]--;
					}
				}
			}
		}else{
			for(int i=1;i<=n-1;i++){
				for(int j=i+1;j<=n;j++){
					if(c[i][d[i]+1]==c[j][d[j]+1] && d[i]!=b[i] && d[j]!=b[j]){
						d[i]++;
						d[j]++;
						if(q(qq,mmm+1)==true){
							d[i]--;
							d[j]--;
							dd[sss]=2;
							e[sss][1]=i;
							e[sss][2]=j;
							sss--;
							return true;
						}else{
							d[i]--;
							d[j]--;
						}
					}
				}
			}
		}
	}
	return false;
}
int main(){
	freopen("meow.in","r",stdin);
	freopen("meow.out","w",stdout);
	cin>>t;
	for(int ii=1;ii<=t;ii++){
		cin>>n>>m>>k;
		for(int i=1;i<=n;i++){
			b[i]=0;
			d[i]=0;
		}
		for(int i=1;i<=m;i++){
			cin>>a[i];
		}
		bool dddd=q(0,1);
	    cout<<ssss<<endl;
	    for(int i=1;i<=ssss;i++){
    		cout<<dd[i];
	    	for(int j=1;j<=dd[i];j++) cout<<' '<<e[i][j];
	    	cout<<endl;
	    }
	}
	return 0;
}