#CODEFESTIVAL2017QUALBE. Popping Balls

Popping Balls

配点 : 16001600

問題文

A+BA + B 個のボールが一列に並べられています。 左から AA 個のボールは赤で、右から BB 個のボールは青で塗られています。

あなたは、以下の操作を行います:

  • 最初に、 1s,tA+B1 \leq s, t \leq A + B を満たす整数 s,ts, t を選びます。
  • 次に、以下のステップを A+BA + B 回繰り返します: 各ステップでは、あなたは左から 11 番目または ss 番目 (存在すれば) または tt 番目 (存在すれば、すべて 1-based) のボールを選び、すぬけ君にあげます。

すぬけ君に何通りの方法でボールをあげることができるでしょうか? Mod 109+710^9 + 7 で求めてください。

ここで、ある整数 kk に対し、 kk 番目にすぬけ君にあげるボールの色が異なるとき、二つの方法は異なるとみなします。 特に、 s,ts, t の選択は関係ありません。 また、同じ色の二つのボールは区別しません。

制約

  • 1A,B20001 \leq A, B \leq 2000

入力

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

AA BB

出力

答えを出力せよ。

3 3
20

33 個の赤いボールと 33 個の青いボールをあげる方法は 2020 通りあります。 それらのすべての方法が可能であることが分かります。

以下は操作の例です (r は赤を、 b は青をあらわします):

  • s=3,t=4s = 3, t = 4 を選ぶ。
  • 最初、列は rrrbbb となっています。
  • 33 番目のボール (r) を取り除きすぬけ君にあげます。 列は rrbbb となっています。
  • 44 番目のボール (b) を取り除きすぬけ君にあげます。 列は rrbb となっています。
  • 11 番目のボール (r) を取り除きすぬけ君にあげます。 列は rbb となっています。
  • 33 番目のボール (b) を取り除きすぬけ君にあげます。 列は rb となっています。
  • 11 番目のボール (r) を取り除きすぬけ君にあげます。 列は b となっています。
  • 11 番目のボール (b) を取り除きすぬけ君にあげます。 列は空になります。

この方法では、すぬけ君は rbrbrb の順でボールを受け取ります。

4 4
67

44 個の赤いボールと 44 個の青いボールをあげる方法は 7070 通りあります。 そのうち、 bbrrbrbr, brbrbrbr, brrbbrbr だけが不可能です。

7 9
7772
1987 1789
456315553