#include
long jc(int x);
int main()
{
int a, b, c, d, e, f, g;
long m1, m2, m3, m4, m5, m6, n1, n2, n3, n4, n5, n6;
for(a = 1; a <= 9;a++)
{
if(a == jc(a))
printf("%d ",a);
for(b = 0;b <= 9; b++)
{
m1 = a * 10 + b;
n1 = jc(a) + jc(b);
if(m1 == n1)
printf("%ld ",m1);
for(c = 0;c <= 9; c++)
{
m2 = m1 * 10 + c;
n2 = n1 + jc(c);
if(m2 == n2)
printf("%ld ",m2);
for(d = 0; d <= 9; d++)
{
m3 = m2 * 10 + d;
n3 = n2 + jc(d);
if(m3 == n3)
printf("%ld ",m3);
for(e = 0; e <= 9; e++)
{
m4 = m3 * 10 + e;
n4 = n3 + jc(e);
if(m4 == n4)
printf("%ld ",m4);
for(f = 0; f <= 9; f++)
{
m5 = m4 * 10 + f;
n5 = n4 + jc(f);
if(m5==n5) printf("%ld ",m5);
for(g=0;g<=9;g++)
{
m6=m5*10+g;
n6=n5+jc(g);
if(m6==n6) printf("%ld ",m6);
}
}
}
}
}
}
}
}
long jc(int x)
{
int i;
long p=1;
for(i=1;i<=x;i++) p*=i;
return p;
}