#include "stdio.h"
int isSXH(int n)
{
    int g,s,b;
    g = n%10;
    s = n/10%10;
    b = n/100;
    if(g*g*g + s*s*s +b*b*b == n)
        return 1;
    return 0;
}
int main()
{
    int a,b,i,flag,preflag,out;
    while(scanf("%d%d",&a,&b) != EOF)
    {
        preflag = out = 0;
        flag = b - a + 1;
        for(i=a; i<=b;i++)
        {
            isSXH(i) ? out ? printf(" %d",i) : printf("%d",i) : flag -- ;            //若已有输出则需要输出空格+数字,否则只需要输出数字
            if(preflag == flag)            //若是前一个循环的flag与当前的flag相同,表示是水仙花数已经打印了,所以相同
            {
                out = 1;                            //标志已有打印
                continue;                        //直接进入下个循环,不用再给preflag赋值
            }
            preflag = flag;
        }
        out ? puts("") : out;            //一次遍历结束,若有输出则需要换行
        if(!flag)
            puts("no");
    }
}