zjt卖票
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 128 M,其他语言256 M
64bit IO Format: %lld

题目描述

zjt在一个城市的车站卖票,这个城市太大了以至于去任何一个地方都要坐车买票。zjt所在的车站在这个城市的正中央,每天看着不同班次的车辆在他面前来来去去。一天zjt临时起意,想知道有多少种车票可能会路过他所在的车站。这个城市有(2n+1)*(2m+1)个地区,且没有从他所在的车站出发或到达他所在的车站的车票。为了方便计算,两地区来回只计算一次,但zjt现在还是犯迷糊,你能帮帮他吗?

输入描述:

输入一行包括两个用空格隔开的正整数n和m代表题目描述中的n和m

输出描述:

输出总共的可能性,因为答案可能很大,所以仅需输出对1000000007取模后的答案
示例1

输入

复制
3 3

输出

复制
48

说明

样例1解释:
有7*7个地区,zjt的位置设为原点,则图形为

经过计算可以得到有48条线段通过了原点
示例2

输入

复制
1 1

输出

复制
4
示例3

输入

复制
1000000000 1000000000

输出

复制
943180320

备注: