#include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int MAX = 1e5, MOD = 998244353; vector factorial(MAX + 1, 1); for (int i = 2; i <= MAX; i++) factorial[i] = (factorial[i - 1] * i) % MOD; int n; cin >> n; vector a(n), b(n); for (int i = 0; i < n; i++) cin >> a[i]; for (int i = 0; i < n; i++) cin >> b[i]; sort(a.begin(), a.end()); sort(b.begin(), b.end(), greater ()); int numSmallerOrEqual = 0, numGreater = 0; for (int i = 0; i < n; i++) { numSmallerOrEqual += (a[i] <= b[i]); numGreater += (a[i] > b[i]); } cout << (factorial[numSmallerOrEqual] * factorial[numGreater]) % MOD; return 0; }