#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=5e5+10;
int t;
int n,m,k;
int s[N];
struct opt{
    int pt,s1,s2;
    opt(){pt=s1=s2=0;}
    void add(int _pt,int _s1,int _s2){
        pt=_pt,s1=_s1,s2=_s2;
    }
    void print(){
        if(pt==1) printf("%d %d\n",pt,s1);
        else printf("%d %d %d\n",pt,s1,s2);
    }
}o[N];
void st2(){
    int h=1,t=0,op=0,a;
    memset(s,0,sizeof s);
    for(int i=1;i<=m;i++){
        scanf("%d",&a);
        if(h>t) s[++t]=a,o[++op].add(1,1,0);//printf("1 1\n");
        else if(a!=s[h]){
            o[++op].add(1,1,0);
            //printf("1 1\n");
            if(a==s[1]) --t;
            else s[++t]=a;
        }
        else ++h,o[++op].add(1,2,0),o[++op].add(2,1,2);
        //printf("1 2\n2 1 2\n");
    }
    printf("%d\n",op);
    for(int i=1;i<=op;i++) o[i].print();
}
int main(){
    freopen("meow.in","r",stdin);
    freopen("meow.out","w",stdout);
    scanf("%d",&t);
    int fl=t%10;
    while(t--){
        scanf("%d%d%d",&n,&m,&k);
        //if(fl==1) st1();
        if(n==2) st2();
    }
    fclose(stdin);
    fclose(stdout);
	return 0;
}
