rendered paste body#include<stdio.h>
long N;
long n;
long ans[4][10001];
long cnt[4];
long flag[4][1000001];
long finans[4][10001];
long fincnt[4];
int f=0;
int main()
{
long x;
long k,t;
long i,j;
scanf("%ld",&N);
f=0;
cnt[0]=1;
cnt[1]=1;
cnt[2]=1;
ans[0][0]=1;
ans[1][0]=2;
ans[2][0]=3;
n=10000;
for(i=0;i<3;i++)
{
for(j=5;j<=5*n;j+=5)
{
flag[i][j]=0;
}
}
flag[0][5]=1;
flag[1][10]=1;
flag[2][15]=1;
for(k=4;k<=n;k++)
{
for(i=0;i<3;i++)
{
for(j=0;j<cnt[i];j++)
{
t=ans[i][j]+k;
if(flag[i][t]==1)
{
break;
}
}
if(j==cnt[i])
{
flag[i][5*k]=1;
ans[i][cnt[i]]=k;
cnt[i]++;
break;
}
}
}
for(x=0;x<N;x++)
{
fincnt[0]=0;
fincnt[1]=0;
fincnt[2]=0;
scanf("%d",&n);
if(n==0)
{
printf("0\n");
printf("0 0 0\n");
}
else if(n==1)
{
printf("1\n");
printf("1 0 0\n");
printf("1\n");
}
else if(n==2)
{
printf("2\n");
printf("1 1 0\n");
printf("1\n");
printf("2\n");
}
else if(n==3)
{
printf("3\n");
printf("1 1 1\n");
printf("1\n");
printf("2\n");
printf("3\n");
}
else
{
printf("%ld\n",n);
for(i=0;i<3;i++)
{
for(j=0;j<cnt[i];j++)
{
if(ans[i][j]>n)
break;
finans[i][j]=ans[i][j];
fincnt[i]++;
}
}
printf("%ld %ld %ld\n",fincnt[0],fincnt[1],fincnt[2]);
for(i=0;i<3;i++)
{
for(j=0;j<fincnt[i];j++)
{
printf("%ld ",finans[i][j]);
}
printf("\n");
}
}
}
return 0;
}