#include <bits/stdc++.h>
using namespace std;
map<long long int, long long int> M;
template <typename T>
void factorization(T p) {
  long long int i = 2;
  while (i * i <= p) {
    if (p % i == 0) {
      ++M[i];
      p /= i;
    } else {
      ++i;
    }
  }
  if (p != 1) ++M[p];
}
int main(int argc, char *argv[]) {
  cin.tie(0);
  ios::sync_with_stdio(false);
  int n, p;
  cin >> n >> p;
  factorization(p);
  long long int ans = 1;
  for (map<long long int, long long int>::iterator itr = M.begin();
       itr != M.end(); ++itr) {
    ans *= pow(itr->first, itr->second);
  }
  cout << ans << endl;
  return 0;
}
