AT_code_festival_2017_qualb_e Popping Balls
Description
[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 $ の選択は関係ありません。 また、同じ色の二つのボールは区別しません。
Input Format
N/A
Output Format
N/A
Explanation/Hint
### 制約
- $ 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` だけが不可能です。