#include<iostream>
using namespace std;
int cnt=0; int n;
int arr[100000][10]={0};
int temp[10]={0};
void find(int k,int add)
{
if(k==10||add==0)
{
for(int i=0;i<10;i++)
arr[cnt][i]=temp[i];
cnt++;
return;
}
if(k==9)
{
temp[k]=add;
find(k+1,0);
temp[k]=0;
}
else
{
for(int i=0;(i<=add&&((add-i)/(9-k))<=2)&&i<=2;i++)
{
temp[k]=i;
add=add-i;
find(k+1,add);
add=add+i;
temp[k]=0;
}
}
return;
}
int main()
{
scanf("%d",&n);
if(n<10||n>30)
{
printf("0");
return 0;
}
else
find(0,n-10);
printf("%d\n",cnt);
for(int i=0;i<cnt;i++)
{
for(int j=0;j<10;j++)
printf("%d ",arr[i][j]+1);
printf("\n");
}
return 0;
}