import java.util.Scanner;

class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        int num = Integer.parseInt(str);
        double max = 0;

        for(int i=1;i<=num;i++){
            if(num==1){
                max=1;
                break;
            }
            for(int j=2;j<num;j++){
                if(Math.pow(i, j)>num){
                    break;
                }
                max = Math.max(max, Math.pow(i, j));
            }
        }
        System.out.println((int)max);
    }
} import java.util.Scanner; Scanner java.util class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        int num = Integer.parseInt(str);
        double max = 0;

        for(int i=1;i<=num;i++){
            if(num==1){
                max=1;
                break;
            }
            for(int j=2;j<num;j++){
                if(Math.pow(i, j)>num){
                    break;
                }
                max = Math.max(max, Math.pow(i, j));
            }
        }
        System.out.println((int)max);
    }
} Main public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        int num = Integer.parseInt(str);
        double max = 0;

        for(int i=1;i<=num;i++){
            if(num==1){
                max=1;
                break;
            }
            for(int j=2;j<num;j++){
                if(Math.pow(i, j)>num){
                    break;
                }
                max = Math.max(max, Math.pow(i, j));
            }
        }
        System.out.println((int)max);
    } main {
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        int num = Integer.parseInt(str);
        double max = 0;

        for(int i=1;i<=num;i++){
            if(num==1){
                max=1;
                break;
            }
            for(int j=2;j<num;j++){
                if(Math.pow(i, j)>num){
                    break;
                }
                max = Math.max(max, Math.pow(i, j));
            }
        }
        System.out.println((int)max);
    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) String str = sc.next(); str sc.next() sc.next sc int num = Integer.parseInt(str); num Integer.parseInt(str) Integer.parseInt Integer str double max = 0; max 0 for(int i=1;i<=num;i++){
            if(num==1){
                max=1;
                break;
            }
            for(int j=2;j<num;j++){
                if(Math.pow(i, j)>num){
                    break;
                }
                max = Math.max(max, Math.pow(i, j));
            }
        } int i=1; int i=1; i 1 i<=num i num i++ i++ i {
            if(num==1){
                max=1;
                break;
            }
            for(int j=2;j<num;j++){
                if(Math.pow(i, j)>num){
                    break;
                }
                max = Math.max(max, Math.pow(i, j));
            }
        } {
            if(num==1){
                max=1;
                break;
            }
            for(int j=2;j<num;j++){
                if(Math.pow(i, j)>num){
                    break;
                }
                max = Math.max(max, Math.pow(i, j));
            }
        } if(num==1){
                max=1;
                break;
            } num==1 num 1 {
                max=1;
                break;
            } max=1 max 1 break; for(int j=2;j<num;j++){
                if(Math.pow(i, j)>num){
                    break;
                }
                max = Math.max(max, Math.pow(i, j));
            } int j=2; int j=2; j 2 j<num j num j++ j++ j {
                if(Math.pow(i, j)>num){
                    break;
                }
                max = Math.max(max, Math.pow(i, j));
            } {
                if(Math.pow(i, j)>num){
                    break;
                }
                max = Math.max(max, Math.pow(i, j));
            } if(Math.pow(i, j)>num){
                    break;
                } Math.pow(i, j)>num Math.pow(i, j) Math.pow Math i j num {
                    break;
                } break; max = Math.max(max, Math.pow(i, j)) max Math.max(max, Math.pow(i, j)) Math.max Math max Math.pow(i, j) Math.pow Math i j System.out.println((int)max) System.out.println System.out System System.out (int)max String[] args args
import java.util.Scanner;

class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        int num = Integer.parseInt(str);
        double max = 0;

        for(int i=1;i<=num;i++){
            if(num==1){
                max=1;
                break;
            }
            for(int j=2;j<num;j++){
                if(Math.pow(i, j)>num){
                    break;
                }
                max = Math.max(max, Math.pow(i, j));
            }
        }
        System.out.println((int)max);
    }
}