 
import java.util.ArrayList;
import java.util.Scanner;

 class Main  {
     public static void main(String[]args){
         Scanner scan = new Scanner(System.in);
         int n = scan.nextInt();
         int max = 0 ;
         if(n==1){
             max = 1;
         }
         for(int i = 2 ; i<= n ; i++ ){
             for(int j  = 1 ; j<=n ; j++){
                
                 if(Math.pow(j, i) - (int)Math.pow(j,i) == 0){
                     
                     if( (int)Math.pow(j,i) > max && (int)Math.pow(j,i)<=n){
                         max =  (int)Math.pow(j,i) ;
                     }
                 }
                  //System.out.print((int)Math.pow(j,i)+" ");
                 if( (int)Math.pow(j+1,i ) > n){
                     break;
                 }
                 
             }
             //System.out.println();
         }
         System.out.println(max);
         
     }
} import java.util.ArrayList; ArrayList java.util import java.util.Scanner; Scanner java.util class Main  {
     public static void main(String[]args){
         Scanner scan = new Scanner(System.in);
         int n = scan.nextInt();
         int max = 0 ;
         if(n==1){
             max = 1;
         }
         for(int i = 2 ; i<= n ; i++ ){
             for(int j  = 1 ; j<=n ; j++){
                
                 if(Math.pow(j, i) - (int)Math.pow(j,i) == 0){
                     
                     if( (int)Math.pow(j,i) > max && (int)Math.pow(j,i)<=n){
                         max =  (int)Math.pow(j,i) ;
                     }
                 }
                  //System.out.print((int)Math.pow(j,i)+" ");
                 if( (int)Math.pow(j+1,i ) > n){
                     break;
                 }
                 
             }
             //System.out.println();
         }
         System.out.println(max);
         
     }
} Main public static void main(String[]args){
         Scanner scan = new Scanner(System.in);
         int n = scan.nextInt();
         int max = 0 ;
         if(n==1){
             max = 1;
         }
         for(int i = 2 ; i<= n ; i++ ){
             for(int j  = 1 ; j<=n ; j++){
                
                 if(Math.pow(j, i) - (int)Math.pow(j,i) == 0){
                     
                     if( (int)Math.pow(j,i) > max && (int)Math.pow(j,i)<=n){
                         max =  (int)Math.pow(j,i) ;
                     }
                 }
                  //System.out.print((int)Math.pow(j,i)+" ");
                 if( (int)Math.pow(j+1,i ) > n){
                     break;
                 }
                 
             }
             //System.out.println();
         }
         System.out.println(max);
         
     } main {
         Scanner scan = new Scanner(System.in);
         int n = scan.nextInt();
         int max = 0 ;
         if(n==1){
             max = 1;
         }
         for(int i = 2 ; i<= n ; i++ ){
             for(int j  = 1 ; j<=n ; j++){
                
                 if(Math.pow(j, i) - (int)Math.pow(j,i) == 0){
                     
                     if( (int)Math.pow(j,i) > max && (int)Math.pow(j,i)<=n){
                         max =  (int)Math.pow(j,i) ;
                     }
                 }
                  //System.out.print((int)Math.pow(j,i)+" ");
                 if( (int)Math.pow(j+1,i ) > n){
                     break;
                 }
                 
             }
             //System.out.println();
         }
         System.out.println(max);
         
     } Scanner scan = new Scanner(System.in); scan new Scanner(System.in) int n = scan.nextInt(); n scan.nextInt() scan.nextInt scan int max = 0 ; max 0 if(n==1){
             max = 1;
         } n==1 n 1 {
             max = 1;
         } max = 1 max 1 for(int i = 2 ; i<= n ; i++ ){
             for(int j  = 1 ; j<=n ; j++){
                
                 if(Math.pow(j, i) - (int)Math.pow(j,i) == 0){
                     
                     if( (int)Math.pow(j,i) > max && (int)Math.pow(j,i)<=n){
                         max =  (int)Math.pow(j,i) ;
                     }
                 }
                  //System.out.print((int)Math.pow(j,i)+" ");
                 if( (int)Math.pow(j+1,i ) > n){
                     break;
                 }
                 
             }
             //System.out.println();
         } int i = 2 ; int i = 2 ; i 2 i<= n i n i++ i++ i {
             for(int j  = 1 ; j<=n ; j++){
                
                 if(Math.pow(j, i) - (int)Math.pow(j,i) == 0){
                     
                     if( (int)Math.pow(j,i) > max && (int)Math.pow(j,i)<=n){
                         max =  (int)Math.pow(j,i) ;
                     }
                 }
                  //System.out.print((int)Math.pow(j,i)+" ");
                 if( (int)Math.pow(j+1,i ) > n){
                     break;
                 }
                 
             }
             //System.out.println();
         } {
             for(int j  = 1 ; j<=n ; j++){
                
                 if(Math.pow(j, i) - (int)Math.pow(j,i) == 0){
                     
                     if( (int)Math.pow(j,i) > max && (int)Math.pow(j,i)<=n){
                         max =  (int)Math.pow(j,i) ;
                     }
                 }
                  //System.out.print((int)Math.pow(j,i)+" ");
                 if( (int)Math.pow(j+1,i ) > n){
                     break;
                 }
                 
             }
             //System.out.println();
         } for(int j  = 1 ; j<=n ; j++){
                
                 if(Math.pow(j, i) - (int)Math.pow(j,i) == 0){
                     
                     if( (int)Math.pow(j,i) > max && (int)Math.pow(j,i)<=n){
                         max =  (int)Math.pow(j,i) ;
                     }
                 }
                  //System.out.print((int)Math.pow(j,i)+" ");
                 if( (int)Math.pow(j+1,i ) > n){
                     break;
                 }
                 
             } int j  = 1 ; int j  = 1 ; j 1 j<=n j n j++ j++ j {
                
                 if(Math.pow(j, i) - (int)Math.pow(j,i) == 0){
                     
                     if( (int)Math.pow(j,i) > max && (int)Math.pow(j,i)<=n){
                         max =  (int)Math.pow(j,i) ;
                     }
                 }
                  //System.out.print((int)Math.pow(j,i)+" ");
                 if( (int)Math.pow(j+1,i ) > n){
                     break;
                 }
                 
             } {
                
                 if(Math.pow(j, i) - (int)Math.pow(j,i) == 0){
                     
                     if( (int)Math.pow(j,i) > max && (int)Math.pow(j,i)<=n){
                         max =  (int)Math.pow(j,i) ;
                     }
                 }
                  //System.out.print((int)Math.pow(j,i)+" ");
                 if( (int)Math.pow(j+1,i ) > n){
                     break;
                 }
                 
             } if(Math.pow(j, i) - (int)Math.pow(j,i) == 0){
                     
                     if( (int)Math.pow(j,i) > max && (int)Math.pow(j,i)<=n){
                         max =  (int)Math.pow(j,i) ;
                     }
                 } Math.pow(j, i) - (int)Math.pow(j,i) == 0 Math.pow(j, i) - (int)Math.pow(j,i) Math.pow(j, i) Math.pow Math j i (int)Math.pow(j,i) Math.pow Math j i 0 {
                     
                     if( (int)Math.pow(j,i) > max && (int)Math.pow(j,i)<=n){
                         max =  (int)Math.pow(j,i) ;
                     }
                 } if( (int)Math.pow(j,i) > max && (int)Math.pow(j,i)<=n){
                         max =  (int)Math.pow(j,i) ;
                     } (int)Math.pow(j,i) > max && (int)Math.pow(j,i)<=n (int)Math.pow(j,i) > max (int)Math.pow(j,i) Math.pow Math j i max (int)Math.pow(j,i)<=n (int)Math.pow(j,i) Math.pow Math j i n {
                         max =  (int)Math.pow(j,i) ;
                     } max =  (int)Math.pow(j,i) max (int)Math.pow(j,i) Math.pow Math j i if( (int)Math.pow(j+1,i ) > n){
                     break;
                 } (int)Math.pow(j+1,i ) > n (int)Math.pow(j+1,i ) Math.pow Math j+1 j 1 i n {
                     break;
                 } break; System.out.println(max) System.out.println System.out System System.out max String[]args args
 
import java.util.ArrayList;
import java.util.Scanner;

 class Main  {
     public static void main(String[]args){
         Scanner scan = new Scanner(System.in);
         int n = scan.nextInt();
         int max = 0 ;
         if(n==1){
             max = 1;
         }
         for(int i = 2 ; i<= n ; i++ ){
             for(int j  = 1 ; j<=n ; j++){
                
                 if(Math.pow(j, i) - (int)Math.pow(j,i) == 0){
                     
                     if( (int)Math.pow(j,i) > max && (int)Math.pow(j,i)<=n){
                         max =  (int)Math.pow(j,i) ;
                     }
                 }
                  //System.out.print((int)Math.pow(j,i)+" ");
                 if( (int)Math.pow(j+1,i ) > n){
                     break;
                 }
                 
             }
             //System.out.println();
         }
         System.out.println(max);
         
     }
}
