AT_arc215_d [ARC215D] cresc.
Description
長さ $ N+1 $ の数列 $ A = (A_1,A_2, \ldots, A_{N + 1}) $ に対して、以下のような方法で長さ $ N $ の数列 $ S = (S_1, S_2, \ldots, S_{N}) $ を得ることを考えます。
- 各 $ i $ ( $ 1 \le i \le N $ ) について、 $ S_i=A_i+A_{i + 1} $ とする。
以下の条件を全て満たす長さ $ N $ の数列 $ S $ の個数を $ 10^9 + 7 $ で割った余りを求めて下さい。
- 広義単調増加である。
- ある $ 0 $ 以上 $ M $ 以下の整数からなる長さ $ N+1 $ の数列 $ A $ であって、 $ A $ から前述の方法で $ S $ を得ることができるものが存在する。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ M $
Output Format
答えを $ 1 $ 行に出力せよ。
Explanation/Hint
### Sample Explanation 1
$ A $ として考えられるのは以下の $ 8 $ 通りです。
- $ A = (0,0,0) $ のとき、 $ S = (0,0) $
- $ A = (0,0,1) $ のとき、 $ S = (0,1) $
- $ A = (0,1,0) $ のとき、 $ S = (1,1) $
- $ A = (0,1,1) $ のとき、 $ S = (1,2) $
- $ A = (1,0,0) $ のとき、 $ S = (1,0) $
- $ A = (1,0,1) $ のとき、 $ S = (1,1) $
- $ A = (1,1,0) $ のとき、 $ S = (2,1) $
- $ A = (1,1,1) $ のとき、 $ S = (2,2) $
このうち広義単調増加な $ S $ は、 $ (0,0),(0,1),(1,1),(1,2),(2,2) $ の $ 5 $ 種類です。
### Constraints
- $ 1 \le N, M \le 10^7 $
- 入力される値は全て整数