import math

N, M = list(map(int, input().split()))

mx = 0

for i in range(1, math.floor(math.sqrt(M))+1):

    if M % i == 0 and M // i >= N:

        mx = max(mx, i)

    if M % i == 0 and i >= N:

        mx = max(mx, M//i)

print(mx)
import math

N, M = list(map(int, input().split()))

mx = 0

for i in range(1, math.floor(math.sqrt(M))+1):

    if M % i == 0:

        if M // i >= N:

            mx = max(mx, i)

        if i >= N:

            mx = max(mx, M//i)

print(mx)
import math

N, M = list(map(int, input().split()))
mx = 0
for i in range(1, math.floor(math.sqrt(M)) + 1):
    if M % i == 0 and M // i >= N:
        mx = max(mx, i)
    if M % i == 0 and i >= N:
        mx = max(mx, M // i)
print(mx)

import math

N, M = list(map(int, input().split()))
mx = 0
for i in range(1, math.floor(math.sqrt(M)) + 1):
    if M % i == 0:
        if M // i >= N:
            mx = max(mx, i)
        if i >= N:
            mx = max(mx, M // i)
print(mx)

-    if M % i == 0 and M // i >= N: -        mx = max(mx, i) -    if M % i == 0 and i >= N: -        mx = max(mx, M // i) +    if M % i == 0: +        if M // i >= N: +            mx = max(mx, i) +        if i >= N: +            mx = max(mx, M // i)