#arc046d. [arc046_d]うさぎとマス目

[arc046_d]うさぎとマス目

问题描述

有一个 HHWW 列的方格。用 (i,j)(i, j) 表示第 ii 行第 jj 列的格子。

初始时,兔子位于格子 (0,0)(0, 0)。兔子执行以下操作:

  • 如果当前所在格子已经被涂色,则停止操作。
  • 如果当前所在格子未被涂色,则涂上颜色,并从当前位置 (i,j)(i, j) 移动到 ((i+1)modH,j)((i+1) \mod H, j) 或者 (i,(j+1)modW)(i, (j+1) \mod W)

兔子将所有格子都涂色后,在格子 (0,0)(0, 0) 停止操作的方法有多少种?请计算对 109+710^9+7 取模后的余数。

注意,只有当兔子的行走路径不同时,两种方法才被认为是不同的。


输入

输入从标准输入读入,具有以下格式。

HH WW

  • 第一行包含两个整数 HHWW,表示方格的行数和列数(2H,W106)(2≦H,W≦10^6)

输出

输出对 109+710^9+7 取模后的结果。在输出末尾包含一个换行符。


输入示例 1

2 2

输出示例 1

2

有两种方法:


输入示例 2

6 3

输出示例 2

3

输入示例 3

3 4

输出示例 3

0

输入示例 4

10 10

输出示例 4

260

输入示例 5

200 300

输出示例 5

551887980

请输出对 109+710^9+7 取模后的结果。