3260 - 跳

邪教喜欢在各种各样空间内跳。现在,邪教来到了一个二维平面。 在这个平面内,如果邪教当前跳到了(x,y),那么他下一步可以选择跳到以下4个点: (x-1,y),(x+1,y),(x,y-1),(x,y+1)。 而每当邪教到达一个点,他需要耗费一些体力, 假设到达(x,y)需要耗费的体力用C(x,y)表示。 对于C(x,y),有以下几个性质: 1、若x=0或者y=0,则C(x,y)=1。 2、若x>0且y>0,则C(x,y)=C(x,y-1)+C(x-1,y)。 3、若x<0且y<0,则C(x,y)=无穷大。 现在,邪教想知道从(0,0)出发到(N,M),最少花费多少体力 到达(0,0)点花费的体力也需要被算入)。 由于答案可能很大,只需要输出答案对10^9+7取模的结果。

输入

读入两个整数 N ,M,表示邪教想到达的点。
0<=N, M<=10^12 ,N*M<=10^12

输出

输出仅一个整数,表示邪教需要花费的最小体力对 10^9+7取模的结果。

样例

输入

1 2

输出

6 
时间限制 1 秒
内存限制 128 MB
统计
上一题 下一题