AT_arc076_a [ABC065C] Reconciled?

Description

[problemUrl]: https://atcoder.jp/contests/abc065/tasks/arc076_a すぬけ君は、犬を $ N $ 匹と猿を $ M $ 匹飼っています。すぬけ君は、この $ N+M $ 匹を一列に並べようと思っています。 文字通り犬猿の仲の犬たちと猿たちを仲直りさせたいすぬけ君は、犬同士、または猿同士が隣り合うところができないように並べようと思っています。 このような並べ方は何通りあるでしょうか。犬と猿は $ 10^9+7 $ 以上の数を理解できないので、並べ方の個数を $ 10^9+7 $ で割ったあまりを求めてください。 ただし、犬同士、また猿同士は互いに区別します。また、左右が反転しただけの列も異なる列とみなします。

Input Format

N/A

Output Format

N/A

Explanation/Hint

### 制約 - $ 1\ ≦\ N,M\ ≦\ 10^5 $ ### Sample Explanation 1 犬をそれぞれ `A`,`B` とし、猿をそれぞれ `C`,`D` とすると、`ACBD`,`ADBC`,`BCAD`,`BDAC`,`CADB`,`CBDA`,`DACB`,`DBCA` の $ 8 $ 通りの並べ方があります。