#include <bits/stdc++.h>
#define endl '\n'
#define INF 0x3f3f3f3f3f3f3f3f
using namespace std;
#define ll long long
ll m=INF;
ll n;
struct appetite{
ll s,h;
};
int arr[20];
int f=0;
void dfs1(int c,int sum){
if(c>10){
if(sum==n){
f++;
}
return;
}
for(ll i=1;i<=3;i++){
arr[c]=i;
dfs1(c+1,sum+i);
}
}
void dfs(int c,int sum){
if(c>10){
if(sum==n){
for(int i=1;i<=9;i++) cout<<arr[i]<<" ";
cout<<arr[10]<<endl;
f++;
}
return;
}
for(ll i=1;i<=3;i++){
arr[c]=i;
dfs(c+1,sum+i);
}
}
void solve() {//不用存储结果
cin>>n;
dfs1(1,0);//先计算符合的方案总数
cout<<f<<endl;
dfs(1,0);//再把方案输出
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
memset(arr,0,20);
ll t = 1;
// cin >> T;
while (t--) solve();
return 0;
}