import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		int X = sc.nextInt();
		int ans = 1;
		for(int b=2;b<X;b++) {
			for(int p=2;(int)Math.pow(b,p)<=X;p++) {
				if(ans <= Math.pow(b,p)) {
					ans = (int) Math.pow(b,p);
				}
			}
		}
		System.out.println(ans);
	}

} import java.util.Scanner; Scanner java.util public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		int X = sc.nextInt();
		int ans = 1;
		for(int b=2;b<X;b++) {
			for(int p=2;(int)Math.pow(b,p)<=X;p++) {
				if(ans <= Math.pow(b,p)) {
					ans = (int) Math.pow(b,p);
				}
			}
		}
		System.out.println(ans);
	}

} Main public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		int X = sc.nextInt();
		int ans = 1;
		for(int b=2;b<X;b++) {
			for(int p=2;(int)Math.pow(b,p)<=X;p++) {
				if(ans <= Math.pow(b,p)) {
					ans = (int) Math.pow(b,p);
				}
			}
		}
		System.out.println(ans);
	} main {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		int X = sc.nextInt();
		int ans = 1;
		for(int b=2;b<X;b++) {
			for(int p=2;(int)Math.pow(b,p)<=X;p++) {
				if(ans <= Math.pow(b,p)) {
					ans = (int) Math.pow(b,p);
				}
			}
		}
		System.out.println(ans);
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int X = sc.nextInt(); X sc.nextInt() sc.nextInt sc int ans = 1; ans 1 for(int b=2;b<X;b++) {
			for(int p=2;(int)Math.pow(b,p)<=X;p++) {
				if(ans <= Math.pow(b,p)) {
					ans = (int) Math.pow(b,p);
				}
			}
		} int b=2; int b=2; b 2 b<X b X b++ b++ b {
			for(int p=2;(int)Math.pow(b,p)<=X;p++) {
				if(ans <= Math.pow(b,p)) {
					ans = (int) Math.pow(b,p);
				}
			}
		} {
			for(int p=2;(int)Math.pow(b,p)<=X;p++) {
				if(ans <= Math.pow(b,p)) {
					ans = (int) Math.pow(b,p);
				}
			}
		} for(int p=2;(int)Math.pow(b,p)<=X;p++) {
				if(ans <= Math.pow(b,p)) {
					ans = (int) Math.pow(b,p);
				}
			} int p=2; int p=2; p 2 (int)Math.pow(b,p)<=X (int)Math.pow(b,p) Math.pow Math b p X p++ p++ p {
				if(ans <= Math.pow(b,p)) {
					ans = (int) Math.pow(b,p);
				}
			} {
				if(ans <= Math.pow(b,p)) {
					ans = (int) Math.pow(b,p);
				}
			} if(ans <= Math.pow(b,p)) {
					ans = (int) Math.pow(b,p);
				} ans <= Math.pow(b,p) ans Math.pow(b,p) Math.pow Math b p {
					ans = (int) Math.pow(b,p);
				} ans = (int) Math.pow(b,p) ans (int) Math.pow(b,p) Math.pow Math b p System.out.println(ans) System.out.println System.out System System.out ans String[] args args public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		int X = sc.nextInt();
		int ans = 1;
		for(int b=2;b<X;b++) {
			for(int p=2;(int)Math.pow(b,p)<=X;p++) {
				if(ans <= Math.pow(b,p)) {
					ans = (int) Math.pow(b,p);
				}
			}
		}
		System.out.println(ans);
	}

} public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		int X = sc.nextInt();
		int ans = 1;
		for(int b=2;b<X;b++) {
			for(int p=2;(int)Math.pow(b,p)<=X;p++) {
				if(ans <= Math.pow(b,p)) {
					ans = (int) Math.pow(b,p);
				}
			}
		}
		System.out.println(ans);
	}

} Main
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		int X = sc.nextInt();
		int ans = 1;
		for(int b=2;b<X;b++) {
			for(int p=2;(int)Math.pow(b,p)<=X;p++) {
				if(ans <= Math.pow(b,p)) {
					ans = (int) Math.pow(b,p);
				}
			}
		}
		System.out.println(ans);
	}

}