AT_arc101_d [ARC101F] Robots and Exits

Description

[problemUrl]: https://atcoder.jp/contests/arc101/tasks/arc101_d 数直線上に $ N $ 体のロボットと $ M $ 個の出口があります。 これらの $ N\ +\ M $ 個の座標はすべて整数であり、すべて相異なります。 各 $ i $ ($ 1\ \leq\ i\ \leq\ N $) について、左から $ i $ 番目のロボットの座標は $ x_i $ です。 また、各 $ j $ ($ 1\ \leq\ j\ \leq\ M $) について、左から $ j $ 番目の出口の座標は $ y_j $ です。 すぬけ君は、次の $ 2 $ 種類の操作を好きな順序で繰り返し行い、ロボットを一斉に動かすことができます。 - 数直線上のすべてのロボットの座標を $ -1 $ する。 - 数直線上のすべてのロボットの座標を $ +1 $ する。 各ロボットは、いずれかの出口と重なった瞬間、その出口を通って数直線上から消えます。 すぬけ君は、すべてのロボットが消えるまで操作を行い続けます。 すべてのロボットが消えた後、各ロボットがどの出口を通ったかという組合せは何通りありうるでしょうか? $ 10^9\ +\ 7 $ で割った余りを求めてください。 ただし、$ 2 $ 通りの組合せが異なるとは、あるロボットが存在し、そのロボットの通った出口が異なることを言います。

Input Format

N/A

Output Format

N/A

Explanation/Hint

### 制約 - $ 1\ \leq\ N,\ M\ \leq\ 10^5 $ - $ 1\ \leq\ x_1\