#include <bits/stdc++.h>
using namespace std;
int n,ans[10000000][20],t[20],cnt=0;
void dfs(int val,int s){
if(val==10){
if(s==0){
for(int i=0;i<10;i++){
ans[cnt][i]=t[i];
}
cnt++;
}
memset(t,0,sizeof(t));
return;
}
if(s<=0){
return;
}
for(int i=1;i<=3;i++){
t[val]=i;
dfs(val+1,s-i);
}
return;
}
int main(){
scanf("%d",&n);
if(n<10||n>30){
printf("0");
}
dfs(0,n);
printf("%d\n",cnt);
for(int i=0;i<cnt;i++){
for(int j=0;j<10;j++){
printf("%d ",ans[i][j]);
}
printf("\n");
}
return 0;
}