func_code_string: #include <bits/stdc++.h>   using namespace std;   mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());   const long long maxn = 60;   const long long mod = 1e9 + 7;   const long double PI = acos((long double)-1);   long long pw(long long a, long long b, long long md = mod) {     long long res = 1;     while (b) {       if (b & 1) {         res = (a * res) % md;       }       a = (a * a) % md;       b >>= 1;     }     return (res);   }   long long n, t;   long long c[maxn][maxn];   int32_t main() {     ios::sync_with_stdio(false);     cin.tie(0);     cout.tie(0);     cin >> n >> t;     long long ans = 0;     if (t == 1) ans--;     if (__builtin_popcountll(t) != 1) cout << 0, exit(0);     ;     c[0][0] = 1;     for (long long i = 1; i < maxn; i++) {       c[i][0] = 1;       for (long long j = 1; j <= i; j++) c[i][j] = c[i - 1][j] + c[i - 1][j - 1];     }     t = __builtin_ctzll(t) + 1;     n += 1;     long long cnt = 0;     for (long long i = 50; i >= 0; i--) {       if (cnt > t) break;       if (n & (1LL << i)) ans += c[i][t - cnt], cnt++;     }     if (__builtin_popcountll(n) == t) ans++;     cout << ans;     return (0);   }   