#include <bits/stdc++.h>

int rev(int n){//反转整数
    int result = 0;//保存翻转后的结果
    while(1)//while(true)也可以 
    {
        int i = n%10;//每次都是得到最低位上的数字
        result = result*10+i;//将最低位作为最高位,然后得到sum 
        n = n/10;//把原来的数字逐渐缩小 
        if(n == 0)
        {
            break;
        } 
    }
    return result;
}

int main(){
    int i;
    for(i=1;i<256;i++)
        if(i*i==rev(i*i))
            printf("%d\n",i);
    return 0;
}