#include using namespace std; typedef long long int ll; typedef pair P; typedef vector VI; typedef vector VVI; #define REP(i,n) for(ll i=0;i<(n);i++) #define ALL(v) v.begin(),v.end() constexpr ll MOD=998244353; constexpr ll INF=2e18; int main(){ ll n, k; cin >> n >> k; unordered_map mp; mp[1]=1; ll ans=0; for(ll i=1;i<=n;i++){ unordered_map nxmp; for(auto p:mp){ if(p.first*i*(i+1)*(i+2)<=k){ nxmp[p.first]+=p.second; nxmp[p.first*i]+=p.second; } else{ ans+=p.second; for(ll j=i;j<=n;j++){ if(p.first*j<=k) ans+=p.second; } for(ll j=i;j<=n;j++)for(ll l=j+1;l<=n;l++){ if(p.first*j*l<=k) ans+=p.second; } } } mp=nxmp; } for(auto p:mp){ ans+=p.second; } cout << ans-1 << endl; return 0; }