#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std;
#define N 15005
int n,m,a[N],rk[N];char s[N];
void solve(int t)
{
printf("%d %s\n",t,s);vector<int> x[2];int i,j;
for(i=0;i<n;i++)if(s[i]=='1')x[a[i]&1^t].push_back(a[i]);
for(i=0;i<int(x[1].size());i++)x[0].push_back(x[1][i]);
for(i=0,j=0;i<n;i++)if(s[i]=='1')a[i]=x[0][j++];
}
int main()
{
int T,i,j;scanf("%d",&T);
while(T--){
memset(s,0,sizeof(s));
scanf("%d%d",&n,&m);for(i=0;i<n;i++)scanf("%d",&a[i]);printf("29\n");
bool flg=0;if(n&1){flg=1;n++;}
for(i=0;i<n;i++){rk[i]=i;if(rk[i]>=(n>>1))rk[i]=n-rk[i]-1;}
for(i=1;i<(n>>1);i+=2)swap(rk[i],rk[i+(n>>1)-(n%4==0)]);if(flg)n--;
for(i=0;i<=13;i++){
for(j=0;j<n;j++)s[j]='1';solve(0);
for(j=0;j<n;j++)if(rk[a[j]]>>i&1)s[j]='1';else s[j]='0';solve(1);
}
for(i=0;i<n;i++)if(a[i]^i)s[i]='1';else s[i]='0';solve(1);
}
}