import java.util.*;

public class Euler119 {
    static int digitSum(long n){int s=0;while(n>0){s+=(int)(n%10);n/=10;}return s;}
    public static void main(String[] args) {
        long limit=1000000000000000000L; TreeSet<Long> vals=new TreeSet<>();
        for(int s=2;s<=200;s++){long val=(long)s*s;while(val<=limit&&val>0){if(val>=10&&digitSum(val)==s)vals.add(val);val*=s;if(val<0)break;}}
        Long[] arr=vals.toArray(new Long[0]);
        System.out.println(arr[29]);
    }
}
