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