编程题
### 问题描述
小齐有 $N$ 头奶牛,每头奶牛的身高分别为 $a_1, a_2, \ldots, a_N$。他的牛栏有 $N$ 个,每个牛栏都有一个最大身高限制 $b_1, b_2, \ldots, b_N$(例如,如果 $b_5=17$,那么最大身高不超过 $17$ 的奶牛可以放在第 $5$ 个牛栏里)。请计算小齐有多少种不同的方式来安排他的奶牛,使得每头奶牛都在不同的牛栏,并且每个牛栏的身高限制都得到满足。
### 输入格式
第一行包含一个整数 $N$。
第二行包含 $N$ 个空格分隔的整数 $a_1, a_2, \ldots, a_N$。
第三行包含 $N$ 个空格分隔的整数 $b_1, b_2, \ldots, b_N$。
### 输出格式
输出一个整数,表示小齐有多少种方式来安排奶牛,使得每头奶牛都在不同的牛栏,并且每个牛栏的身高限制都得到满足。请注意,由于输出可能很大,可能需要使用 $64$ 位整数,例如 $C$++ 中的 $long$ $long$。
### 样例输入
```
4
1 2 3 4
2 4 3 4
```
### 样例输出
```
8
```
### 评测数据规模
$1 \leq N \leq 20$。