#include<bits/stdc++.h>
#define int long long
using namespace std;
int c[110][110],n,m;
int dfs(int cnt,int m)
{
if(cnt==0)
{
if(m==1||m==0)return 1;
return 0;
}
if(!(n&(1<<cnt)))return dfs(cnt-1,m);
return c[cnt][m]+dfs(cnt-1,m-1);
}
signed main()
{
cin>>n>>m;
int cnt=log2(n);
for(int i=1;i<=cnt+1;i++)
{
c[i][1]=i;
for(int j=2;j<=i;j++)
{
c[i][j]=(i-j+1)*c[i][j-1]/j;
}
}
cout<<dfs(cnt,m)<<endl;
return 0;
}