N,K = map(int,input().split()) P = list(range(N+1)) for i in range(2,N+1): if i*i>N:break for j in range(i*i,N+1,i): P[j] = P[i] C = {} x = N while x>1: C[P[x]] = C.get(P[x],0)+1 x = x//P[x] ans = 0 nmax = 0 for a in range(2,N): D = {} x = a while x>1: D[P[x]] = D.get(P[x],0)+1 x = x//P[x] tot = 0 num = 1 for p in D: if p in C: tot += min(D[p],C[p]) num *= D[p]+1 if tot>=K and num>nmax: ans = a nmax = num print(ans)