import java.util.*;
public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();

        int res=1;
        
        for(int i=2; i<100; i++){
            for(int j=2; j<11; j++){
                if(Math.pow(i,j)<=N){
                    res = (int)Math.max(res,Math.pow(i,j));
                }else{
                    break;
                }
            }

        }

        System.out.println(res);
        
        
        
        
        
        }
    } import java.util.*; util.* java public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();

        int res=1;
        
        for(int i=2; i<100; i++){
            for(int j=2; j<11; j++){
                if(Math.pow(i,j)<=N){
                    res = (int)Math.max(res,Math.pow(i,j));
                }else{
                    break;
                }
            }

        }

        System.out.println(res);
        
        
        
        
        
        }
    } Main public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();

        int res=1;
        
        for(int i=2; i<100; i++){
            for(int j=2; j<11; j++){
                if(Math.pow(i,j)<=N){
                    res = (int)Math.max(res,Math.pow(i,j));
                }else{
                    break;
                }
            }

        }

        System.out.println(res);
        
        
        
        
        
        } main {
		Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();

        int res=1;
        
        for(int i=2; i<100; i++){
            for(int j=2; j<11; j++){
                if(Math.pow(i,j)<=N){
                    res = (int)Math.max(res,Math.pow(i,j));
                }else{
                    break;
                }
            }

        }

        System.out.println(res);
        
        
        
        
        
        } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int N = sc.nextInt(); N sc.nextInt() sc.nextInt sc int res=1; res 1 for(int i=2; i<100; i++){
            for(int j=2; j<11; j++){
                if(Math.pow(i,j)<=N){
                    res = (int)Math.max(res,Math.pow(i,j));
                }else{
                    break;
                }
            }

        } int i=2; int i=2; i 2 i<100 i 100 i++ i++ i {
            for(int j=2; j<11; j++){
                if(Math.pow(i,j)<=N){
                    res = (int)Math.max(res,Math.pow(i,j));
                }else{
                    break;
                }
            }

        } {
            for(int j=2; j<11; j++){
                if(Math.pow(i,j)<=N){
                    res = (int)Math.max(res,Math.pow(i,j));
                }else{
                    break;
                }
            }

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

        int res=1;
        
        for(int i=2; i<100; i++){
            for(int j=2; j<11; j++){
                if(Math.pow(i,j)<=N){
                    res = (int)Math.max(res,Math.pow(i,j));
                }else{
                    break;
                }
            }

        }

        System.out.println(res);
        
        
        
        
        
        }
    } public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();

        int res=1;
        
        for(int i=2; i<100; i++){
            for(int j=2; j<11; j++){
                if(Math.pow(i,j)<=N){
                    res = (int)Math.max(res,Math.pow(i,j));
                }else{
                    break;
                }
            }

        }

        System.out.println(res);
        
        
        
        
        
        }
    } Main
import java.util.*;
public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();

        int res=1;
        
        for(int i=2; i<100; i++){
            for(int j=2; j<11; j++){
                if(Math.pow(i,j)<=N){
                    res = (int)Math.max(res,Math.pow(i,j));
                }else{
                    break;
                }
            }

        }

        System.out.println(res);
        
        
        
        
        
        }
    }