# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1220591 | durdona | Rack (eJOI19_rack) | Pypy 3 | 0 ms | 0 KiB |
import sys
sys.setrecursionlimit(10**6)
from functools import lru_cache
mod = 10**9 + 7
@lru_cache(maxsize=None)
mod=10**9+7
def rec(i,j):
if i == 0:return 1
if j%2 == 0:
return (rec(i-1,j//2)+pow(2,i-1, mod)) % mod
else:
return rec(i-1,j//2+1)
n,k=map(int,input().split())
print(rec(n,k))