output_description: Print the largest perfect power that is at most X.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      X
attempt: s = int(input())
  
  snooker = [0] * 1000
  
  for p in range(1, 100):
      for q in range(1, 10):
          if p**q <= 10000:
              snooker[10 * (p - 1) + q - 1] = p**q
  
  snooker = [
      1,
      2,
      3,
      4,
      5,
      6,
      7,
      8,
      9,
      10,
      11,
      12,
      13,
      14,
      15,
      16,
      17,
      18,
      19,
      20,
      21,
      22,
      23,
      24,
      25,
      26,
      27,
      28,
      29,
      30,
      31,
      32,
      33,
      34,
      35,
      36,
      37,
      38,
      39,
      40,
      41,
      42,
      43,
      44,
      45,
      46,
      47,
      48,
      49,
      50,
      51,
      52,
      53,
      54,
      55,
      56,
      57,
      58,
      59,
      60,
      61,
      62,
      63,
      64,
      65,
      66,
      67,
      68,
      69,
      70,
      71,
      72,
      73,
      74,
      75,
      76,
      77,
      78,
      79,
      80,
      81,
      82,
      83,
      84,
      85,
      86,
      87,
      88,
      89,
      90,
      91,
      92,
      93,
      94,
      95,
      96,
      97,
      98,
      99,
      100,
      121,
      125,
      128,
      144,
      169,
      196,
      216,
      225,
      243,
      256,
      289,
      324,
      343,
      361,
      400,
      441,
      484,
      512,
      529,
      576,
      625,
      676,
      729,
      784,
      841,
      900,
      961,
      1000,
      1024,
      1089,
      1156,
      1225,
      1296,
      1331,
      1369,
      1444,
      1521,
      1600,
      1681,
      1728,
      1764,
      1849,
      1936,
      2025,
      2116,
      2187,
      2197,
      2209,
      2304,
      2401,
      2500,
      2601,
      2704,
      2744,
      2809,
      2916,
      3025,
      3125,
      3136,
      3249,
      3364,
      3375,
      3481,
      3600,
      3721,
      3844,
      3969,
      4096,
      4225,
      4356,
      4489,
      4624,
      4761,
      4900,
      4913,
      5041,
      5184,
      5329,
      5476,
      5625,
      5776,
      5832,
      5929,
      6084,
      6241,
      6400,
      6561,
      6724,
      6859,
      6889,
      7056,
      7225,
      7396,
      7569,
      7744,
      7776,
      7921,
      8000,
      8100,
      8281,
      8464,
      8649,
      8836,
      9025,
      9216,
      9261,
      9409,
      9604,
      9801,
      10000,
  ]
  slist = [0] * 210
  
  for i in range(0, 210):
      if snooker[i] <= s:
          slist[i] = snooker[i]
  
  print(max(slist))
  
problem_description: Statement
  
  You are given a positive integer X. Find the largest _perfect power_ that is
  at most X. Here, a perfect power is an integer that can be represented as b^p,
  where b is an integer not less than 1 and p is an integer not less than 2.
samples: [{"input": "10", "output": "9\n    \n\nThere are four perfect powers that are at most 10: 1, 4, 8 and 9. We should\nprint the largest among them, 9.\n\n* * *"}, {"input": "1", "output": "1\n    \n\n* * *"}, {"input": "999", "output": "961"}]