var
ans, a, p :int64;
i :longint;
d, h :array[1 .. 200000] of int64;
begin
readln(a);
p := 2;
ans := 1;
while (p * p <= a) do begin
if (a mod p = 0) then begin
ans := ans * p;
inc(h[p]);
end;
while (a mod p = 0) do begin
inc(d[p]);
a := a div p;
end;
inc(p);
end;
ans := ans * a;
for i := 2 to 100000 do begin
while (h[i] * ans < d[i]) do begin
ans := ans * i;
inc(h[i]);
end;
end;
writeln(ans);
end.
dmFyCiAgICBhbnMsIGEsIHAgOmludDY0OwogICAgaSA6bG9uZ2ludDsKICAgIGQsIGggOmFycmF5WzEgLi4gMjAwMDAwXSBvZiBpbnQ2NDsKYmVnaW4KIAogICAgcmVhZGxuKGEpOwogCiAgICBwIDo9IDI7CiAgICBhbnMgOj0gMTsKIAogICAgd2hpbGUgKHAgKiBwIDw9IGEpIGRvIGJlZ2luCiAgICAgICAgCiAgICAgICAgaWYgKGEgbW9kIHAgPSAwKSB0aGVuIGJlZ2luCiAgICAgICAgICAgIGFucyA6PSBhbnMgKiBwOwogICAgICAgICAgICBpbmMoaFtwXSk7CiAgICAgICAgZW5kOwogCiAgICAgICAgd2hpbGUgKGEgbW9kIHAgPSAwKSBkbyBiZWdpbgogICAgICAgICAgICBpbmMoZFtwXSk7CiAgICAgICAgICAgIGEgOj0gYSBkaXYgcDsKICAgICAgICBlbmQ7CiAKICAgICAgICBpbmMocCk7CiAgICBlbmQ7CiAKICAgIGFucyA6PSBhbnMgKiBhOwogCiAgICBmb3IgaSA6PSAyIHRvIDEwMDAwMCBkbyBiZWdpbgogICAgCiAgICAgICAgd2hpbGUgKGhbaV0gKiBhbnMgPCBkW2ldKSBkbyBiZWdpbgogICAgICAgICAgICBhbnMgOj0gYW5zICogaTsKICAgICAgICAgICAgaW5jKGhbaV0pOwogICAgICAgIGVuZDsKICAgICAgICAKICAgIGVuZDsKIAogICAgd3JpdGVsbihhbnMpOwogICAgCmVuZC4KIA==