import java.util.*;
import static java.lang.Math.*;
import java.math.BigInteger;

public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		
		// 入力
		int x = sc.nextInt();
		
		// 計算
		int result = 1;
		for(int i = 1; i <= x; i++){
		    for(int j = 2; j <= x; j++){
		        if((int)pow(i, j) <= x) result = max(result, (int)pow(i, j));
		    }
		}
		
		// 出力
		System.out.println(result);
	}
} import java.util.*; util.* java import static java.lang.Math.*; import static java.lang.Math.*; import static java.lang.Math.*; import java.math.BigInteger; BigInteger java.math public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		
		// 入力
		int x = sc.nextInt();
		
		// 計算
		int result = 1;
		for(int i = 1; i <= x; i++){
		    for(int j = 2; j <= x; j++){
		        if((int)pow(i, j) <= x) result = max(result, (int)pow(i, j));
		    }
		}
		
		// 出力
		System.out.println(result);
	}
} Main public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		
		// 入力
		int x = sc.nextInt();
		
		// 計算
		int result = 1;
		for(int i = 1; i <= x; i++){
		    for(int j = 2; j <= x; j++){
		        if((int)pow(i, j) <= x) result = max(result, (int)pow(i, j));
		    }
		}
		
		// 出力
		System.out.println(result);
	} main {
		Scanner sc = new Scanner(System.in);
		
		// 入力
		int x = sc.nextInt();
		
		// 計算
		int result = 1;
		for(int i = 1; i <= x; i++){
		    for(int j = 2; j <= x; j++){
		        if((int)pow(i, j) <= x) result = max(result, (int)pow(i, j));
		    }
		}
		
		// 出力
		System.out.println(result);
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int x = sc.nextInt(); x sc.nextInt() sc.nextInt sc int result = 1; result 1 for(int i = 1; i <= x; i++){
		    for(int j = 2; j <= x; j++){
		        if((int)pow(i, j) <= x) result = max(result, (int)pow(i, j));
		    }
		} int i = 1; int i = 1; i 1 i <= x i x i++ i++ i {
		    for(int j = 2; j <= x; j++){
		        if((int)pow(i, j) <= x) result = max(result, (int)pow(i, j));
		    }
		} {
		    for(int j = 2; j <= x; j++){
		        if((int)pow(i, j) <= x) result = max(result, (int)pow(i, j));
		    }
		} for(int j = 2; j <= x; j++){
		        if((int)pow(i, j) <= x) result = max(result, (int)pow(i, j));
		    } int j = 2; int j = 2; j 2 j <= x j x j++ j++ j {
		        if((int)pow(i, j) <= x) result = max(result, (int)pow(i, j));
		    } {
		        if((int)pow(i, j) <= x) result = max(result, (int)pow(i, j));
		    } if((int)pow(i, j) <= x) result = max(result, (int)pow(i, j)); (int)pow(i, j) <= x (int)pow(i, j) pow i j x result = max(result, (int)pow(i, j)) result max(result, (int)pow(i, j)) max result (int)pow(i, j) pow i j System.out.println(result) System.out.println System.out System System.out result String[] args args public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		
		// 入力
		int x = sc.nextInt();
		
		// 計算
		int result = 1;
		for(int i = 1; i <= x; i++){
		    for(int j = 2; j <= x; j++){
		        if((int)pow(i, j) <= x) result = max(result, (int)pow(i, j));
		    }
		}
		
		// 出力
		System.out.println(result);
	}
} public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		
		// 入力
		int x = sc.nextInt();
		
		// 計算
		int result = 1;
		for(int i = 1; i <= x; i++){
		    for(int j = 2; j <= x; j++){
		        if((int)pow(i, j) <= x) result = max(result, (int)pow(i, j));
		    }
		}
		
		// 出力
		System.out.println(result);
	}
} Main
import java.util.*;
import static java.lang.Math.*;
import java.math.BigInteger;

public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		
		// 入力
		int x = sc.nextInt();
		
		// 計算
		int result = 1;
		for(int i = 1; i <= x; i++){
		    for(int j = 2; j <= x; j++){
		        if((int)pow(i, j) <= x) result = max(result, (int)pow(i, j));
		    }
		}
		
		// 出力
		System.out.println(result);
	}
}
