#include <bits/stdc++.h> using namespace std; int main() { int n; cin >> n; vector<long long> 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()); if (a.front() > b.back()) { // 无法使 max(A) <= min(B) cout << -1 << '\n'; return 0; } // 候选阈值:a 和 b 的所有值(去重) vector<long long> vals; vals.reserve(2*n); vals.insert(vals.end(), a.begin(), a.end()); vals.insert(vals.end(), b.begin(), b.end()); sort(vals.begin(), vals.end()); vals.erase(unique(vals.begin(), vals.end()), vals.end()); long long ans = 0; for (long long t : vals) { long long cntA = upper_bound(a.begin(), a.end(), t) - a.begin(); long long cntB = b.end() - lower_bound(b.begin(), b.end(), t); if (cntA > 0 && cntB > 0) ans = max(ans, cntA + cntB); } cout << ans << '\n'; return 0; }