#include <stdio.h>
int main(){
int n ;
scanf("%d",&n);
int base=1;
int base1 = 1;
int sum =1;
int yu,i,ge,x;
int sum1 = 0;
int a = 0;
a = n;
while(a>1){
base=base*10 ;
a--;
}//确定位数,得到base,一个最小的n位数。
base1 = base;
while(base1<base1*10){ //把所有的n位数全都试一遍
yu = base1; //yu就是余,去掉个位数之后剩下的前几位数字。
i = n;
while(i>0){
ge = yu%10; //ge就是个位上的数字。
yu = yu/10;
x = n; //重置x的值,以免上次循环的结果干扰下一次循环
sum = 1; //重置sum的值,以免上次循环的结果干扰下一次循环
while(x>0){
sum = sum*ge;
x--;
}
sum1 =sum1+sum;
i--;
}if(sum1 == base1){//判定是否为水仙花数
printf("%d\n",sum1);
}
sum1 = 0;//以免上次循环的结果干扰下一次循环
base1++;
}
return 0;
}