import java.util.*;
import static java.lang.Integer.*;
//import static java.lang.Long.*;
//import static java.lang.Math.*;
import static java.lang.Math.*;
import static java.lang.System.*;

public class Main {
	public static void main(String[] args) {
		int i,j;
		Scanner sc = new Scanner(in);
		int x = parseInt(sc.next());
		sc.close();
		int mx = 0;
		if(x<4) {
			mx=1;
		} else {
			int sq = (int) floor(sqrt(x));
			int jo=0;
			for (i = 2; i <= sq; i++) {
				jo=(int)pow((double)i,floor(log10((double)x)/log10((double)i)));
//				out.printf("%d:%f:%f:%f%n",i,log10((double)x),log10((double)i),floor(log10((double)x)/log10((double)i)));
//				out.printf("%d:%d%n",i,jo);
				if(jo>mx)mx=jo;
			}
		}
		out.println(mx);
	}
}

/tmp/hf-datasets-cache/medium/datasets/42704881117311-config-parquet-and-info-qiankunmu-Project_CodeNet-896c9d36/hub/datasets--qiankunmu--Project_CodeNet_Python800_and_Java250/snapshots/c899fde44a77ba1cc14973ed3de064e4ff3aadc7/Project_CodeNet_Java250.tar.gz