#include "bits/stdc++.h"
using namespace std;
#define mod (ll)(1e9+7)
#define ll long long
#define ff first
#define ss second
#define pb push_back
#define N 24
#define maxn 2000005
ll n,k;
void solve(){
	cin>>n>>k;
	ll cur=1,id=1;
	pair<ll,bool> m[n+5];
	m[0]={1ll,0};
	for(ll i=1; i<=n; i++){
		m[i].ff=(m[i-1].ff*2);
		m[i].ss=(m[i-1].ss)|(m[i].ff>k);
		m[i].ff=m[i].ff%((ll)1e18);
	}
	for(ll i=1; i<=n; i++){
		ll x=m[n-i].ff;
		if(m[n-i].ss) continue;
		if(cur+x>k) continue;
		id=(id+m[i-1].ff%mod)%mod;
		cur=cur+x;
	}
	cout<<id<<'\n';
}
 
int main(){
	// freopen("in.txt","w",stdout);
	// freopen("out.txt","r",stdin);
	ios_base::sync_with_stdio(0); cin.tie(0);
	ll t=1;
	// cin>>t;
	while(t--) solve();
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |