编程题
### 问题描述
火炉是一种用于加热和燃烧的设备。它通常由金属或陶瓷材料制成,具有防火结构。火炉可用于加热房间、烹饪食物、加工材料等多种用途。
但小郑买来火炉不是为了取暖,而是实现自己的梦想。 现在小郑有 $N$ 个柴薪,同时也有 $N$ 个火炉。对于每个火炉,需要不小于 $a_i$ 能量的柴薪来重燃,每个柴薪的能量值以 $b_i$ 的形式给出。
注意对于每个火炉小郑都要放入柴薪,并且只能放入一个柴薪,即使这个柴薪的能量不足。
小郑需要恰好重燃 $K$ 个火炉,才可以完成梦想,小郑想要知道,究竟有多少种放入柴薪的顺序可以完成自己的梦想(假设按火炉顺序 $1\dots N$ 一个个挑选柴薪加入之中构成一种方案)。
由于重燃火炉的方案很多,请你将方案数量对 $10^9+7$ 取模。
### 输入格式
第一行两个正整数 $n$,$k$,代表火炉数和至少需要重燃的火炉数量。
之后一行 $n$ 个数字代表火炉需要的能量 $a_i$,接着一行 $n$ 个数字代表柴薪能量值 $b_i$。
### 输出格式
输出方案数量,并且对 $10^9+7$ 取模。
### 样例输入 1
```text
4 4
1 1 1 1
1 1 1 1
```
### 样例输出 1
```text
24
```
### 样例输入 2
```text
4 2
2 2 1 1
1 1 2 2
```
### 样例输出 2
```text
4
```
### 评测数据规模
对于所有评测数据,$0 \le K \le N \le 2 \times 10^3,0 \le a_i, b_i <= 10^8$。