#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;
}