编程题
### 问题描述
小齐有 $N$ 头各种大小的奶牛,他为每头奶牛建造了一个独立的牛棚,初始时这些牛棚的大小分别为 $t_1, t_2, ..., t_N$。现在,由于一些奶牛成长得比较大,小齐需要重新为奶牛分配牛棚。
每晚,奶牛们会进行一场找牛棚的仪式。对于每头奶牛 $i$,她只能睡在大小不小于 $s_i$ 的牛棚中。每个牛棚最多只能容纳一头奶牛。
我们称一个奶牛与牛棚的匹配是极大匹配,当且仅当每头被分配的奶牛都适应其牛棚,而每头未分配的奶牛都无法适应任何未分配的牛棚。
计算满足上述条件的极大匹配的数量,结果对 $10^9 + 7$ 取模。
### 输入格式
第一行包含一个整数 $N$。
第二行包含 $N$ 个空格分隔的整数 $s_1, s_2, ..., s_N$,表示每头奶牛的大小。
第三行包含 $N$ 个空格分隔的整数 $t_1, t_2, ..., t_N$,表示每个牛棚的大小。
### 输出格式
输出一个整数,表示满足条件的极大匹配的数量对 $10^9 + 7$ 取模的结果。
### 样例输入
```
4
1 2 3 4
1 2 2 3
```
### 样例输出
```
9
```
### 评测数据规模
$1 \leq N \leq 50$。