#include<iostream>usingnamespace std;int n, a[10]={1,1,1,1,1,1,1,1,1,1};voidseason(int n,int m,int l){if(9== l &&1== m && n >=1&& n <=3){
a[9]+= n - m;for(int i =0; i <10; i++)
cout << a[i]<<' ';
cout << endl;
a[9]-= n - m;}elseif(3* m >= n)for(int i =0, j = l; i <=min(2, n - m); i++){
a[l]+= i;season(n - a[l], m -1, l +1);
a[l]-= i;}}longlongcount(int n,int m){if(n <0||2* m < n)return0;elseif(0<= n && n <=2&&1== m ||0== n)return1;elsereturncount(n, m -1)+count(n -1, m -1)+count(n -2, m -1);}intmain(){
cin >> n;if(n <10|| n>30)
cout <<'0';else{
cout <<count(n -10,10)<< endl;season(n,10,0);}return0;}