#define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; int N; ll mod = 998244353; int main() { cin >> N; vector> vec; for(int i = 0; i < N; ++i) { int x; cin >> x; vec.push_back({x,0}); } for(int i = 0; i < N; ++i) { int y; cin >> y; vec.push_back({y,1}); } sort(vec.begin(), vec.end()); int xres = N, yres = N; for(int i = 0; i < N; ++i) { auto [v,t] = vec[i]; if(t == 0) xres--; if(t == 1) yres--; } ll ans = 1; for(int i = 1; i <= xres; ++i) { ans *= i; ans %= mod; } for(int i = 1; i <= yres; ++i) { ans *= i; ans %= mod; } cout << ans << endl; }