import java.util.*;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);

        int X = sc.nextInt();
        double max = 0;

        if(X==1){
            System.out.println(1);
        }
        else{
            for(int i=1; i<40; i++){
                for(int j=2; j<=10; j++){
                    if(Math.pow(i, j)<=X){
                        max = Math.max(max, Math.pow(i, j));
                    }
                    else{
                        break;
                    }
                }
            }
            System.out.println((int)max);
        }
    }
} import java.util.*; util.* java public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);

        int X = sc.nextInt();
        double max = 0;

        if(X==1){
            System.out.println(1);
        }
        else{
            for(int i=1; i<40; i++){
                for(int j=2; j<=10; j++){
                    if(Math.pow(i, j)<=X){
                        max = Math.max(max, Math.pow(i, j));
                    }
                    else{
                        break;
                    }
                }
            }
            System.out.println((int)max);
        }
    }
} Main public static void main(String[] args){
        Scanner sc = new Scanner(System.in);

        int X = sc.nextInt();
        double max = 0;

        if(X==1){
            System.out.println(1);
        }
        else{
            for(int i=1; i<40; i++){
                for(int j=2; j<=10; j++){
                    if(Math.pow(i, j)<=X){
                        max = Math.max(max, Math.pow(i, j));
                    }
                    else{
                        break;
                    }
                }
            }
            System.out.println((int)max);
        }
    } main {
        Scanner sc = new Scanner(System.in);

        int X = sc.nextInt();
        double max = 0;

        if(X==1){
            System.out.println(1);
        }
        else{
            for(int i=1; i<40; i++){
                for(int j=2; j<=10; j++){
                    if(Math.pow(i, j)<=X){
                        max = Math.max(max, Math.pow(i, j));
                    }
                    else{
                        break;
                    }
                }
            }
            System.out.println((int)max);
        }
    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int X = sc.nextInt(); X sc.nextInt() sc.nextInt sc double max = 0; max 0 if(X==1){
            System.out.println(1);
        }
        else{
            for(int i=1; i<40; i++){
                for(int j=2; j<=10; j++){
                    if(Math.pow(i, j)<=X){
                        max = Math.max(max, Math.pow(i, j));
                    }
                    else{
                        break;
                    }
                }
            }
            System.out.println((int)max);
        } X==1 X 1 {
            System.out.println(1);
        } System.out.println(1) System.out.println System.out System System.out 1 {
            for(int i=1; i<40; i++){
                for(int j=2; j<=10; j++){
                    if(Math.pow(i, j)<=X){
                        max = Math.max(max, Math.pow(i, j));
                    }
                    else{
                        break;
                    }
                }
            }
            System.out.println((int)max);
        } for(int i=1; i<40; i++){
                for(int j=2; j<=10; j++){
                    if(Math.pow(i, j)<=X){
                        max = Math.max(max, Math.pow(i, j));
                    }
                    else{
                        break;
                    }
                }
            } int i=1; int i=1; i 1 i<40 i 40 i++ i++ i {
                for(int j=2; j<=10; j++){
                    if(Math.pow(i, j)<=X){
                        max = Math.max(max, Math.pow(i, j));
                    }
                    else{
                        break;
                    }
                }
            } {
                for(int j=2; j<=10; j++){
                    if(Math.pow(i, j)<=X){
                        max = Math.max(max, Math.pow(i, j));
                    }
                    else{
                        break;
                    }
                }
            } for(int j=2; j<=10; j++){
                    if(Math.pow(i, j)<=X){
                        max = Math.max(max, Math.pow(i, j));
                    }
                    else{
                        break;
                    }
                } int j=2; int j=2; j 2 j<=10 j 10 j++ j++ j {
                    if(Math.pow(i, j)<=X){
                        max = Math.max(max, Math.pow(i, j));
                    }
                    else{
                        break;
                    }
                } {
                    if(Math.pow(i, j)<=X){
                        max = Math.max(max, Math.pow(i, j));
                    }
                    else{
                        break;
                    }
                } if(Math.pow(i, j)<=X){
                        max = Math.max(max, Math.pow(i, j));
                    }
                    else{
                        break;
                    } Math.pow(i, j)<=X Math.pow(i, j) Math.pow Math i j X {
                        max = Math.max(max, Math.pow(i, j));
                    } 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 {
                        break;
                    } break; System.out.println((int)max) System.out.println System.out System System.out (int)max String[] args args public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);

        int X = sc.nextInt();
        double max = 0;

        if(X==1){
            System.out.println(1);
        }
        else{
            for(int i=1; i<40; i++){
                for(int j=2; j<=10; j++){
                    if(Math.pow(i, j)<=X){
                        max = Math.max(max, Math.pow(i, j));
                    }
                    else{
                        break;
                    }
                }
            }
            System.out.println((int)max);
        }
    }
} public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);

        int X = sc.nextInt();
        double max = 0;

        if(X==1){
            System.out.println(1);
        }
        else{
            for(int i=1; i<40; i++){
                for(int j=2; j<=10; j++){
                    if(Math.pow(i, j)<=X){
                        max = Math.max(max, Math.pow(i, j));
                    }
                    else{
                        break;
                    }
                }
            }
            System.out.println((int)max);
        }
    }
} Main
import java.util.*;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);

        int X = sc.nextInt();
        double max = 0;

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