#include<stdio.h>
//答案 768
int m[11];
int v[10]={0};
int c=0;
void check()
{
if((m[1]<m[2]&&m[1]<m[3])&&(m[2]<m[4]&m[2]<m[5]&&m[3]<m[5]&m[3]<m[6])&&(m[4]<m[7]&&m[4]<m[8])&&m[5]<m[8]&&m[5]<m[9]&&m[6]<m[9]&&m[6]<m[10] )
{
printf("%d\n",m[1]);
printf("%d%d\n",m[2],m[3]);
printf("%d%d%d\n",m[4],m[5],m[6]);
printf("%d%d%d%d\n",m[7],m[8],m[9],m[10]);
c++;
}
}
void dfs(int n)
{
if(n==11)
{
check();
return ;
}
for(int i=0;i<=9;i++)
{
if(v[i]==0)
{
v[i]=1;
m[n]=i;
dfs(n+1);
v[i]=0;
}
}
}
main()
{dfs(1);
printf("%d",c);
return 0;
}
int m[11];
int v[10]={0};
int c=0;
void check()
{
if((m[1]<m[2]&&m[1]<m[3])&&(m[2]<m[4]&m[2]<m[5]&&m[3]<m[5]&m[3]<m[6])&&(m[4]<m[7]&&m[4]<m[8])&&m[5]<m[8]&&m[5]<m[9]&&m[6]<m[9]&&m[6]<m[10] )
{
printf("%d\n",m[1]);
printf("%d%d\n",m[2],m[3]);
printf("%d%d%d\n",m[4],m[5],m[6]);
printf("%d%d%d%d\n",m[7],m[8],m[9],m[10]);
c++;
}
}
void dfs(int n)
{
if(n==11)
{
check();
return ;
}
for(int i=0;i<=9;i++)
{
if(v[i]==0)
{
v[i]=1;
m[n]=i;
dfs(n+1);
v[i]=0;
}
}
}
main()
{dfs(1);
printf("%d",c);
return 0;
}