#include using namespace std; typedef long long ll; typedef pair pii; typedef pair ppii; typedef pair pll; typedef tuple tl; ll mod=1000000007; ll gcd(ll a,ll b){ if(a>n>>k; ll u; if(n==0){ if(k==0)cout<<1<n){ u=i; break; } } ll dp[20][k+1]; for(int i=0;i<20;i++)fill(dp[i],dp[i]+k+1,0); dp[0][0]=1; if(n%2==0){ dp[0][1]=2; } for(int i=0;i<19;i++){ ll p=pow(2,i+1); ll y=n/p; for(int j=0;j<=k;j++){ dp[i+1][j]+=dp[i][j]; if(y%2==1)continue; if(j+p<=k){ dp[i+1][j+p]+=dp[i][j]; } if(p-j<=k&&p-j>=0){ dp[i+1][p-j]+=dp[i][j]; } } } ll ans=1; ll sum=0; for(int i=1;i<=k;i++){ sum+=dp[19][i]; } cout<