우리는 이분 탐색으로 어떤 수보다 작은 자연수의 곱(i * j)이 몇 개인지 알아낼 것이다.
A보다 작은 숫자가 몇개인지 찾아내면 A가 몇 번째 숫자인지 알 수 있다.(너무나 당연)
mid보다 작은 게 몇 개인지 세기..
"""
우리는 이분 탐색으로 어떤 수보다 작은 자연수의 곱(i * j)이 몇 개인지 알아낼 것이다.
A보다 작은 숫자가 몇개인지 찾아내면 A가 몇 번째 숫자인지 알 수 있다.(너무나 당연)
예를 들어 10 * 10에서 20보다 작거나 같은 수를 생각해보자.
1*1~1*10
2*1~2*10
3*1~3*6
~
10*1~10*2
위 수가 존재할텐데, 이는 반대로 생각해보면 20을 행으로 나눈 몫이다.
20//1: 10개 --> 단 열의 숫자(N*N배열이므로)를 초과할 수 없다.
"""
import sys
input = sys.stdin.readline
n=int(input())
k=int(input())
start = 1
end=n*n
while start<=end:
mid=(start+end)//2
small_cnt=0
for i in range(1,n+1):
small_cnt+=min(mid//i,n)
if small_cnt >=k:
end=mid-1
else:
start=mid+1
print(mid)