#include <stdio.h>
#include <stdlib.h>
int count=0, a[10], n, ans[20000][10];
void dfs(int step, int sum)//step代表尝试第几个调料,sum代表美味总和
{
int i;
if(step==11)
{
if(sum==n)
{
count++;
for(i=1; i<=10; i++)
ans[count][i]=a[i];
}
return;
}
if(sum<n)
{
for(i=1; i<=3; i++)
{
if(sum+i>n)
break;
a[step]=i;
dfs(step+1, sum+i);
a[step]=0;
}
}
return;
}
int main()
{
int i, j;
scanf("%d", &n);
dfs(1, 0);
printf("%d\n", count);
for(i=1; i<=count; i++)
{
for(j=1; j<=10; j++)
printf("%d ", ans[i][j]);
printf("\n");
}
return 0;
}