import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
	    int x = sc.nextInt();
	    ArrayList<Integer>ans  = new ArrayList<>();
	    
	    if(x==1) {
	    	System.out.println("1");
	    }else {
	    for(int i=1; i<=x; i++) {
	    	for(int j=2; j<=x; j++) {
	    		if((int)Math.pow(i, j)<=x) {
	    			ans.add((int)Math.pow(i, j));
	    		}
	    	}
	    }
	    Collections.sort(ans,Collections.reverseOrder());
	    	System.out.println(ans.get(0));
	      }
	}
} import java.util.ArrayList; ArrayList java.util import java.util.Collections; Collections java.util import java.util.Scanner; Scanner java.util public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
	    int x = sc.nextInt();
	    ArrayList<Integer>ans  = new ArrayList<>();
	    
	    if(x==1) {
	    	System.out.println("1");
	    }else {
	    for(int i=1; i<=x; i++) {
	    	for(int j=2; j<=x; j++) {
	    		if((int)Math.pow(i, j)<=x) {
	    			ans.add((int)Math.pow(i, j));
	    		}
	    	}
	    }
	    Collections.sort(ans,Collections.reverseOrder());
	    	System.out.println(ans.get(0));
	      }
	}
} Main public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
	    int x = sc.nextInt();
	    ArrayList<Integer>ans  = new ArrayList<>();
	    
	    if(x==1) {
	    	System.out.println("1");
	    }else {
	    for(int i=1; i<=x; i++) {
	    	for(int j=2; j<=x; j++) {
	    		if((int)Math.pow(i, j)<=x) {
	    			ans.add((int)Math.pow(i, j));
	    		}
	    	}
	    }
	    Collections.sort(ans,Collections.reverseOrder());
	    	System.out.println(ans.get(0));
	      }
	} main {
		Scanner sc = new Scanner(System.in);
	    int x = sc.nextInt();
	    ArrayList<Integer>ans  = new ArrayList<>();
	    
	    if(x==1) {
	    	System.out.println("1");
	    }else {
	    for(int i=1; i<=x; i++) {
	    	for(int j=2; j<=x; j++) {
	    		if((int)Math.pow(i, j)<=x) {
	    			ans.add((int)Math.pow(i, j));
	    		}
	    	}
	    }
	    Collections.sort(ans,Collections.reverseOrder());
	    	System.out.println(ans.get(0));
	      }
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int x = sc.nextInt(); x sc.nextInt() sc.nextInt sc ArrayList<Integer>ans  = new ArrayList<>(); ans new ArrayList<>() if(x==1) {
	    	System.out.println("1");
	    }else {
	    for(int i=1; i<=x; i++) {
	    	for(int j=2; j<=x; j++) {
	    		if((int)Math.pow(i, j)<=x) {
	    			ans.add((int)Math.pow(i, j));
	    		}
	    	}
	    }
	    Collections.sort(ans,Collections.reverseOrder());
	    	System.out.println(ans.get(0));
	      } 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<=x; i++) {
	    	for(int j=2; j<=x; j++) {
	    		if((int)Math.pow(i, j)<=x) {
	    			ans.add((int)Math.pow(i, j));
	    		}
	    	}
	    }
	    Collections.sort(ans,Collections.reverseOrder());
	    	System.out.println(ans.get(0));
	      } for(int i=1; i<=x; i++) {
	    	for(int j=2; j<=x; j++) {
	    		if((int)Math.pow(i, j)<=x) {
	    			ans.add((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; j++) {
	    		if((int)Math.pow(i, j)<=x) {
	    			ans.add((int)Math.pow(i, j));
	    		}
	    	}
	    } {
	    	for(int j=2; j<=x; j++) {
	    		if((int)Math.pow(i, j)<=x) {
	    			ans.add((int)Math.pow(i, j));
	    		}
	    	}
	    } for(int j=2; j<=x; j++) {
	    		if((int)Math.pow(i, j)<=x) {
	    			ans.add((int)Math.pow(i, j));
	    		}
	    	} int j=2; int j=2; j 2 j<=x j x j++ j++ j {
	    		if((int)Math.pow(i, j)<=x) {
	    			ans.add((int)Math.pow(i, j));
	    		}
	    	} {
	    		if((int)Math.pow(i, j)<=x) {
	    			ans.add((int)Math.pow(i, j));
	    		}
	    	} if((int)Math.pow(i, j)<=x) {
	    			ans.add((int)Math.pow(i, j));
	    		} (int)Math.pow(i, j)<=x (int)Math.pow(i, j) Math.pow Math i j x {
	    			ans.add((int)Math.pow(i, j));
	    		} ans.add((int)Math.pow(i, j)) ans.add ans (int)Math.pow(i, j) Math.pow Math i j Collections.sort(ans,Collections.reverseOrder()) Collections.sort Collections ans Collections.reverseOrder() Collections.reverseOrder Collections System.out.println(ans.get(0)) System.out.println System.out System System.out ans.get(0) ans.get ans 0 String[] args args public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
	    int x = sc.nextInt();
	    ArrayList<Integer>ans  = new ArrayList<>();
	    
	    if(x==1) {
	    	System.out.println("1");
	    }else {
	    for(int i=1; i<=x; i++) {
	    	for(int j=2; j<=x; j++) {
	    		if((int)Math.pow(i, j)<=x) {
	    			ans.add((int)Math.pow(i, j));
	    		}
	    	}
	    }
	    Collections.sort(ans,Collections.reverseOrder());
	    	System.out.println(ans.get(0));
	      }
	}
} public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
	    int x = sc.nextInt();
	    ArrayList<Integer>ans  = new ArrayList<>();
	    
	    if(x==1) {
	    	System.out.println("1");
	    }else {
	    for(int i=1; i<=x; i++) {
	    	for(int j=2; j<=x; j++) {
	    		if((int)Math.pow(i, j)<=x) {
	    			ans.add((int)Math.pow(i, j));
	    		}
	    	}
	    }
	    Collections.sort(ans,Collections.reverseOrder());
	    	System.out.println(ans.get(0));
	      }
	}
} Main
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
	    int x = sc.nextInt();
	    ArrayList<Integer>ans  = new ArrayList<>();
	    
	    if(x==1) {
	    	System.out.println("1");
	    }else {
	    for(int i=1; i<=x; i++) {
	    	for(int j=2; j<=x; j++) {
	    		if((int)Math.pow(i, j)<=x) {
	    			ans.add((int)Math.pow(i, j));
	    		}
	    	}
	    }
	    Collections.sort(ans,Collections.reverseOrder());
	    	System.out.println(ans.get(0));
	      }
	}
}