#include<bits/stdc++.h>
#define rep(i,n)for(int i=0;i<(n);i++)
#define MOD 1000000007
using namespace std;
typedef long long ll;
int a[100000], b[100000];
ll fact[100001];
int main() {
int n; scanf("%d", &n);
rep(i, n)scanf("%d", &a[i]);
rep(i, n)scanf("%d", &b[i]);
sort(a, a + n); sort(b, b + n);
fact[0] = 1;
for (int i = 1; i <= n; i++)fact[i] = (fact[i - 1] * i) % MOD;
int s = 0;
ll ans = 1;
while (s < n) {
if (a[s] < b[s]) {
int i; for (i = s; i < n&&a[i] < b[s]; i++);
(ans *= fact[i - s]) %= MOD; s = i;
}
else {
int i; for (i = s; i < n&&b[i] < a[s]; i++);
(ans *= fact[i - s]) %= MOD; s = i;
}
}
printf("%lld\n", ans);
}