Popping Balls

题意翻译

有 $A+B$ 个球排成一行,其中左边 $A$ 个是红色的,右边 $B$ 个是蓝色的。 你可以选定一对整数 $(s,t)$($s<t$),然后重复进行以下操作直到球被取完:将第一个球或第 $s$ 个球或第 $t$ 个球(当前球的数量必须够才能执行)拿出来。 求最后拿出来的球的颜色序列有多少种不同方案数。答案对 $10^9+7$ 取模。 方案不同当且仅当存在某一次取出的球的颜色不同。 $A, B \leq 2000$。

题目描述

[problemUrl]: https://atcoder.jp/contests/code-festival-2017-qualb/tasks/code_festival_2017_qualb_e $ A\ +\ B $ 個のボールが一列に並べられています。 左から $ A $ 個のボールは赤で、右から $ B $ 個のボールは青で塗られています。 あなたは、以下の操作を行います: - 最初に、 $ 1\ \leq\ s,\ t\ \leq\ A\ +\ B $ を満たす整数 $ s,\ t $ を選びます。 - 次に、以下のステップを $ A\ +\ B $ 回繰り返します: 各ステップでは、あなたは左から $ 1 $ 番目または $ s $ 番目 (存在すれば) または $ t $ 番目 (存在すれば、すべて 1-based) のボールを選び、すぬけ君にあげます。 すぬけ君に何通りの方法でボールをあげることができるでしょうか? Mod $ 10^9\ +\ 7 $ で求めてください。 ここで、ある整数 $ k $ に対し、 $ k $ 番目にすぬけ君にあげるボールの色が異なるとき、二つの方法は異なるとみなします。 特に、 $ s,\ t $ の選択は関係ありません。 また、同じ色の二つのボールは区別しません。

输入输出格式

输入格式


入力は以下の形式で標準入力から与えられる。 > $ A $ $ B $

输出格式


答えを出力せよ。

输入输出样例

输入样例 #1

3 3

输出样例 #1

20

输入样例 #2

4 4

输出样例 #2

67

输入样例 #3

7 9

输出样例 #3

7772

输入样例 #4

1987 1789

输出样例 #4

456315553

说明

### 制約 - $ 1\ \leq\ A,\ B\ \leq\ 2000 $ ### Sample Explanation 1 $ 3 $ 個の赤いボールと $ 3 $ 個の青いボールをあげる方法は $ 20 $ 通りあります。 それらのすべての方法が可能であることが分かります。 以下は操作の例です (`r` は赤を、 `b` は青をあらわします): - $ s\ =\ 3,\ t\ =\ 4 $ を選ぶ。 - 最初、列は `rrrbbb` となっています。 - $ 3 $ 番目のボール (`r`) を取り除きすぬけ君にあげます。 列は `rrbbb` となっています。 - $ 4 $ 番目のボール (`b`) を取り除きすぬけ君にあげます。 列は `rrbb` となっています。 - $ 1 $ 番目のボール (`r`) を取り除きすぬけ君にあげます。 列は `rbb` となっています。 - $ 3 $ 番目のボール (`b`) を取り除きすぬけ君にあげます。 列は `rb` となっています。 - $ 1 $ 番目のボール (`r`) を取り除きすぬけ君にあげます。 列は `b` となっています。 - $ 1 $ 番目のボール (`b`) を取り除きすぬけ君にあげます。 列は空になります。 この方法では、すぬけ君は `rbrbrb` の順でボールを受け取ります。 ### Sample Explanation 2 $ 4 $ 個の赤いボールと $ 4 $ 個の青いボールをあげる方法は $ 70 $ 通りあります。 そのうち、 `bbrrbrbr`, `brbrbrbr`, `brrbbrbr` だけが不可能です。