from functools import lru_cache @lru_cache(maxsize=10**7) def solve(N,K): if K==0: return 0 if N==0: return 1 #Nを含まない+Nを含む return solve(N-1,K)+solve(N-1,K//N) def naive(N,K): res=0 for S in range(1,1<>i)&1: tmp*=(i+1) if tmp<=K: res+=1 return res N,K=map(int,input().split()) print(solve(N,K)-1)