#include <bits/stdc++.h>
using namespace std;
using ll = long long;
constexpr int mod = 1e9 + 7;
signed main() {
ll n, m, ans=1; cin >> n >> m;
vector<ll> pw(n, 1);
for(int i=1; i<n; i++)
pw[i] = (pw[i-1] * 2) % mod;
m--;
for(int b=0; b<=min(n-1, 61ll); b++)
if(m % (1ll << (b + 1)) >= (1ll << b)) ans = (ans + pw[n-b-1]) % mod;
cout << ans << '\n';
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |