def binpow(x, e):
  a = 1.0 #結果変数の初期化
  p = x   #二乗値の初期化
  while e > 0:   #不定反復
    if e % 2 == 0: #指数が偶数のとき
      p *= p
      e /= 2     #二乗値の更新
    else:        #指数が奇数のとき
      a *= p
      e -= 1     #二乗値の乗算
  return a

n, p = [int(i) for i in input().split()]
num = int(p ** (1 / n)) + 1
for i in range(num):
    pp = p
    dv = num - i
    if pp % binpow(dv, n) == 0:
        ans = dv
        break
print(ans)