[EER1] 迫害

题目背景

"In Germany they first came for the Communists,  and I didn't speak up because I wasn't a Communist.   Then they came for the Jews,   and I didn't speak up because I wasn't a Jew.   Then they came for the trade unionists,   and I didn't speak up because I wasn't a trade unionist. Then they came for the Catholics,   and I didn't speak up because I was a Protestant.   Then they came for me , and by that time no one was left to speak up." -- Pastor Martin Niemöller ”起初他们迫害共产党员,我没有说话,因为我不是马克思的信徒。 后来他们迫害犹太人,我没有说话,因为我是日耳曼人。 再后来他们迫害天主教徒,我没有说话,因为我是新教牧师。 最后他们迫害到我头上,我环顾四周,却再也没有人能为我说话。”

题目描述

有 $k$ 个人,X 要对这 $k$ 个人进行迫害。 这 $k$ 个人,每一个人都拥有一个数字,分别从 $1$ 至 $k$。 X 拥有 $n+m$ 个数字,这些数字为 $n$ 个 $1$ 和 $m$ 个大小可由 X 决定的数字(每个数字定好之后不能更换)。 X 能对这些人进行迫害,当且仅当他能用手中若干个数的加和等于被迫害人的数字,一次迫害就成功了(不会消耗数字)。 由于 X 的权利极大,又十分邪恶,他想要从第 $1$ 个人开始**一个一个**进行迫害行动。 由于小 Z 也在这个被迫害的行列里,他十分的慌张,希望你来告诉他 X 能最多能从第一个人开始连续迫害多少个人。 由于被迫害的人太多了,所以请将答案对 $1000000007$ 取模。

输入输出格式

输入格式


第一行两个整数 $n,m$,表示 X 有 $n$ 个 $1$,有 $m$ 个大小可自定的数。

输出格式


请你告诉小 Z,X 能迫害多少个人。

输入输出样例

输入样例 #1

1 2

输出样例 #1

7

输入样例 #2

2 2

输出样例 #2

11

说明

**【样例 1 解释】** X 选取 $2$ 个数分别为 $2,4$,可知能连续迫害 $7$ 个人。 **【样例 2 解释】** X 选取 $2$ 个数分别为 $3,6$,可知能连续迫害 $11$ 个人。 --- **【数据范围】** **本题采用捆绑测试。** - Subtask 1(50 points):$1 \le n \le 5$,$1 \le m \le 5$。 - Subtask 2(30 points):保证答案在取模前在 $10^{18}$ 之内。 - Subtask 3(20 points):无特殊限制。 对于 $100\%$ 的数据,$1 \le n \le 10^6 $,$1 \le m \le 10^9 $。