func_code_string: #include <bits/stdc++.h>   using namespace std;   int Popcount(long long int a) {     int k;     for (k = 0; a; a >>= 1)       if (a & 1ll) k++;     return k;   }   int Ffs(long long int a) {     int k;     for (k = 0; a; a >>= 1, k++)       ;     return k;   }   long long int C[50][50];   long long int getAns(long long int n, long long int t) {     if (n < t || t <= 0) return 0ll;     long long int i;     int k = 0, j = Ffs(t) - 1;     for (i = 1ll; (i << 1) < n; (i <<= 1), k++)       ;     long long int res = getAns(n - i, t >> 1);     if (k < j) return res;     return C[k][j] + res;   }   int main() {     C[0][0] = 1ll;     for (int i = 1; i < 50; i++) {       C[i][0] = C[i][i] = 1ll;       for (int j = 1; j < i; j++) C[i][j] = C[i - 1][j - 1] + C[i - 1][j];     }     long long int N, T;     while (cin >> N >> T) {       N++;       if (Popcount(T) != 1) {         puts( 0 );         continue;       }       long long int Ans = 0ll, x, di = 0ll;       for (x = 1ll; x + di <= N; x <<= 1) {         Ans += getAns(x, T);         di += x;       }       Ans += getAns(N - di, T);       if (T == 1ll) Ans--;       cout << Ans << endl;     }     return 0;   }   