import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;


class Main {
    public static void main(String[] args) {
    	Scanner sc = new Scanner(System.in);
    	int x = sc.nextInt();
    	int xx = x / 2;
    	int ans = 0;

    	for(int i = 1; i <= x; i++){
    		for(int j = 2; j <= x + 1; j++){
    			if(Math.pow(i, j) > ans && Math.pow(i, j) <= x){
    				ans = (int)Math.pow(i, j);
    			}
    		}
    	}

    	System.out.println(ans);
    }
} import java.lang.reflect.Array; Array java.lang.reflect import java.util.Arrays; Arrays java.util import java.util.Comparator; Comparator java.util import java.util.Scanner; Scanner java.util class Main {
    public static void main(String[] args) {
    	Scanner sc = new Scanner(System.in);
    	int x = sc.nextInt();
    	int xx = x / 2;
    	int ans = 0;

    	for(int i = 1; i <= x; i++){
    		for(int j = 2; j <= x + 1; j++){
    			if(Math.pow(i, j) > ans && Math.pow(i, j) <= x){
    				ans = (int)Math.pow(i, j);
    			}
    		}
    	}

    	System.out.println(ans);
    }
} Main public static void main(String[] args) {
    	Scanner sc = new Scanner(System.in);
    	int x = sc.nextInt();
    	int xx = x / 2;
    	int ans = 0;

    	for(int i = 1; i <= x; i++){
    		for(int j = 2; j <= x + 1; j++){
    			if(Math.pow(i, j) > ans && Math.pow(i, j) <= x){
    				ans = (int)Math.pow(i, j);
    			}
    		}
    	}

    	System.out.println(ans);
    } main {
    	Scanner sc = new Scanner(System.in);
    	int x = sc.nextInt();
    	int xx = x / 2;
    	int ans = 0;

    	for(int i = 1; i <= x; i++){
    		for(int j = 2; j <= x + 1; j++){
    			if(Math.pow(i, j) > ans && Math.pow(i, j) <= x){
    				ans = (int)Math.pow(i, j);
    			}
    		}
    	}

    	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 xx = x / 2; xx x / 2 x 2 int ans = 0; ans 0 for(int i = 1; i <= x; i++){
    		for(int j = 2; j <= x + 1; j++){
    			if(Math.pow(i, j) > ans && Math.pow(i, j) <= x){
    				ans = (int)Math.pow(i, j);
    			}
    		}
    	} int i = 1; int i = 1; i 1 i <= x i x i++ i++ i {
    		for(int j = 2; j <= x + 1; j++){
    			if(Math.pow(i, j) > ans && Math.pow(i, j) <= x){
    				ans = (int)Math.pow(i, j);
    			}
    		}
    	} {
    		for(int j = 2; j <= x + 1; j++){
    			if(Math.pow(i, j) > ans && Math.pow(i, j) <= x){
    				ans = (int)Math.pow(i, j);
    			}
    		}
    	} for(int j = 2; j <= x + 1; j++){
    			if(Math.pow(i, j) > ans && Math.pow(i, j) <= x){
    				ans = (int)Math.pow(i, j);
    			}
    		} int j = 2; int j = 2; j 2 j <= x + 1 j x + 1 x 1 j++ j++ j {
    			if(Math.pow(i, j) > ans && Math.pow(i, j) <= x){
    				ans = (int)Math.pow(i, j);
    			}
    		} {
    			if(Math.pow(i, j) > ans && Math.pow(i, j) <= x){
    				ans = (int)Math.pow(i, j);
    			}
    		} if(Math.pow(i, j) > ans && Math.pow(i, j) <= x){
    				ans = (int)Math.pow(i, j);
    			} Math.pow(i, j) > ans && Math.pow(i, j) <= x Math.pow(i, j) > ans Math.pow(i, j) Math.pow Math i j ans Math.pow(i, j) <= x Math.pow(i, j) Math.pow Math i j x {
    				ans = (int)Math.pow(i, j);
    			} ans = (int)Math.pow(i, j) ans (int)Math.pow(i, j) Math.pow Math i j System.out.println(ans) System.out.println System.out System System.out ans String[] args args
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;


class Main {
    public static void main(String[] args) {
    	Scanner sc = new Scanner(System.in);
    	int x = sc.nextInt();
    	int xx = x / 2;
    	int ans = 0;

    	for(int i = 1; i <= x; i++){
    		for(int j = 2; j <= x + 1; j++){
    			if(Math.pow(i, j) > ans && Math.pow(i, j) <= x){
    				ans = (int)Math.pow(i, j);
    			}
    		}
    	}

    	System.out.println(ans);
    }
}