Buggy python submission (verdict: Time Limit Exceeded):
N, P = [int(_c) for _c in input().split(" ")]

if N == 1:
    print(P)
else:
    _max = 1
    M = int(P ** (1 / N) + 1)
    for i in range(1, M):
        if P % (i ** N) == 0:
            _max = i

    if P % ((i + 1) ** N) == 0:
        _max = (i + 1)

    print(_max)

Fixed submission:
N, P = [int(_c) for _c in input().split(" ")]

if N == 1:
    print(P)
else:
    _max = 1
    M = int(P ** (1 / N) + 1.0 * 1e-9)
    for i in range(1, M + 1):
        if P % (i ** N) == 0:
            _max = i

    print(_max)

Buggy python submission (verdict: Time Limit Exceeded):
N, P = [int(_c) for _c in input().split(" ")]

if N == 1:
    print(P)
else:
    _max = 1
    M = int(P ** (1 / N) + 1)
    for i in range(1, M + 1):
        if P % (i ** N) == 0:
            _max = i

    print(_max)

Fixed submission:
N, P = [int(_c) for _c in input().split(" ")]

if N == 1:
    print(P)
else:
    _max = 1
    M = int(P ** (1 / N) + 1.0 * 1e-9)
    for i in range(1, M + 1):
        if P % (i ** N) == 0:
            _max = i

    print(_max)

Buggy python submission (verdict: Time Limit Exceeded):
N, P = [int(_c) for _c in input().split(" ")]

if N == 1:
    print(P)
else:
    _max = 1
    M = int(P ** (1 / N) + 1)
    for i in range(1, M + 1):
        var = i ** N
        if P % var == 0:
            _max = i

    print(_max)

Fixed submission:
N, P = [int(_c) for _c in input().split(" ")]

if N == 1:
    print(P)
else:
    _max = 1
    M = int(P ** (1 / N) + 1.0 * 1e-9)
    for i in range(1, M + 1):
        if P % (i ** N) == 0:
            _max = i

    print(_max)

Buggy python submission (verdict: Time Limit Exceeded):
N, P = [int(_c) for _c in input().split(" ")]
 
if N == 1:
    print(P)
else:
    _max = 1
    M = int(P ** (1 / N))
    for i in range(1, M + 2):
        var = i ** N
        if P % var == 0:
            _max = i
 
    print(_max)

Fixed submission:
N, P = [int(_c) for _c in input().split(" ")]

if N == 1:
    print(P)
else:
    _max = 1
    M = int(P ** (1 / N) + 1.0 * 1e-9)
    for i in range(1, M + 1):
        if P % (i ** N) == 0:
            _max = i

    print(_max)

Buggy python submission (verdict: Time Limit Exceeded):
N, P = [int(_c) for _c in input().split(" ")]

if N == 1:
    print(P)
else:
    _max = 1
    M = int(P ** (1 / N))
    for i in range(1, M + 2):
        var = i ** N
        if P % var == 0:
            _max = i

    print(_max)

Fixed submission:
N, P = [int(_c) for _c in input().split(" ")]

if N == 1:
    print(P)
else:
    _max = 1
    M = int(P ** (1 / N) + 1.0 * 1e-9)
    for i in range(1, M + 1):
        if P % (i ** N) == 0:
            _max = i

    print(_max)

Buggy python submission (verdict: Time Limit Exceeded):
N, P = [int(_c) for _c in input().split(" ")]

if N == 1:
    print(P)
else:
    _max = 1
    M = 10 ** 6
    for i in range(1, M + 1):
        var = i ** N
        if P % var == 0:
            _max = i
        if var > P:
            break

    print(_max)

Fixed submission:
N, P = [int(_c) for _c in input().split(" ")]

if N == 1:
    print(P)
else:
    _max = 1
    M = int(P ** (1 / N) + 1.0 * 1e-9)
    for i in range(1, M + 1):
        if P % (i ** N) == 0:
            _max = i

    print(_max)