#include<stdio.h>
int n,x,y,z[11]={0},t=0;
void g()
{
for(int i=10;i>1;i--)
{
printf("%d ",x+z[i]);
}
printf("%d\n",x+z[1]);
return;
}
void k(int m,int i)
{
if(m==0){g();return;}
for(;i<=11-m;i++)
{
z[i]=1;
k(m-1,i+1);
z[i]=0;
}
return;
}
void h(int m,int i)
{
if(m==0){t++;return;}
for(;i<=11-m;i++)
{
z[i]=1;
h(m-1,i);
z[i]=0;
}
return;
}
int main()
{
scanf("%d",&n);
if(n>30) {printf("0");return 0;}
x=n/10;y=n%10;
h(y,1);
printf("%d\n",t);
k(y,1);
return 0;
}