#include <bits/stdc++.h>
int main() {
  std::ios_base::sync_with_stdio(false);
  std::cin.tie(0);
  std::size_t N, P;
  std::cin >> N >> P;
  std::size_t ceil = std::ceil(std::pow(P, 1 / N) + 0.5);
  if (N == 1) {
    std::cout << P << std::endl;
    return 0;
  }
  std::cout << [&]() mutable {
    for (std::size_t i{ceil}; 0 < i; --i) {
      if (!(P % static_cast<std::size_t>(std::pow(i, N)))) {
        return i;
      }
    }
    return std::size_t{1};
  }() << std::endl;
}
