#include <bits/stdc++.h>
using namespace std;
int n;
const int mod = 1e9 + 7;
long long k;
int arr[1000001];
int f(long long i){
//cout << i << ' ';
if (i == 1){
return 1;
}
int p = 0;
int s = 1;
while (s * 2 < i){
s *= 2;
p++;
}
return (f(i - s) + arr[n - p - 1]) % mod;
}
int main(){
cin >> n >> k;
arr[0] = 1;
for (int i = 1; i <= n; i++){
arr[i] = (arr[i - 1] * 2) % mod;
}
cout << f(k);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |