编程题
### 问题描述
小蓝是一位有追求的艺术家,他喜欢将数字排列得井井有条。
他有两个长为 $n$ 的数组 $a$ 和 $b$,他希望重新排列数组 $a$ 使得对于所有的 $1\leq i\leq n$,都有 $a_i>b_i$。小蓝想知道,有多少种不同的排列方式能够实现他的愿望。
现在,你需要帮助小蓝实现这个想法。你需要编写一个程序,输入数组 $a$ 和 $b$ 的值,输出能够实现小蓝愿望的排列方式的个数。让我们一起探索排序的艺术吧!
### 输入格式
第一行是一个整数 $t$,表示测试用例的个数。
接下来 $t$ 组数据,每组数据包含以下三行:
第一行是一个整数 $n$,表示数组 $a$ 和 $b$ 的长度。
第二行是 $a$ 数组的 $n$ 个整数 $a_1,a_2,...,a_n$。
第三行是 $b$ 数组的 $n$ 个整数 $b_1,b_2,...,b_n$。
### 输出格式
输出 $t$ 行,每行一个整数,表示能够实现小明愿望的排列方式的个数,答案可能很大,请输出对 $10^9+7$ 取模后的值。
### 样例输入
```txt
5
6
9 6 8 4 5 2
4 1 5 6 3 1
3
4 3 2
3 4 9
1
2
1
3
2 3 4
1 3 3
12
2 3 7 10 23 28 29 50 69 135 420 1000
1 1 2 3 5 8 13 21 34 55 89 144
```
### 样例输出
```txt
32
0
1
0
13824
```
### 样例说明
### 评测数据规模
对于 $100$% 的评测数据,$1\leq t \leq 10, 1\leq n \leq 1\cdot 10^5, 1\leq a_i, b_i \leq 10^9 $。