There are N computers and N sockets in a one-dimensional world. The coordinate of the i-th computer is a_i, and the coordinate of the i-th socket is b_i. It is guaranteed that these 2N coordinates are pairwise distinct.

Snuke wants to connect each computer to a socket using a cable. Each socket can be connected to only one computer.

In how many ways can he minimize the total length of the cables? Compute the answer modulo 10^9+7.

Constraints

* 1 ≤ N ≤ 10^5
* 0 ≤ a_i, b_i ≤ 10^9
* The coordinates are integers.
* The coordinates are pairwise distinct.

Input

The input is given from Standard Input in the following format:


N
a_1
:
a_N
b_1
:
b_N


Output

Print the number of ways to minimize the total length of the cables, modulo 10^9+7.

Examples

Input

2
0
10
20
30


Output

2


Input

3
3
10
8
7
12
5


Output

1
N = int(input())
A = [int(input()) for n in range(N)]
B = [int(input()) for n in range(N)]
A.sort()
B.sort()
A.append(10**10) #門番
B.append(10**10) #門番
mod = 7 + 10**9
ANU, BNU = 0, 0 #A not used, B not used
Total = 1
 
ai, bi = 0, 0
if A[0] < B[0]:
    ANU += 1
    ai += 1
else:
    BNU += 1
    bi += 1
while ai < N or bi < N:
    if A[ai] < B[bi]:
        if BNU == 0:
            ANU += 1
        else:
            Total *= BNU
            Total %= mod
            BNU -= 1
        ai += 1
    else:
        if ANU == 0:
            BNU += 1
        else:
            Total *= ANU
            Total %= mod
            ANU -= 1
        bi += 1
print(Total)