#include using i64 = long long; using u64 = unsigned long long; using u32 = unsigned; using u128 = unsigned __int128; using i128 = __int128; void solve() { int N; std::cin >> N; std::vector W(N); for(int& x : W) std::cin >> x; std::ranges::sort(W); std::ranges::reverse(W); int M; std::cin >> M; std::vector B(M); for(int& x : B) std::cin >> x; std::ranges::sort(B); std::ranges::reverse(B); int max = -1, Z = 1, cur = W[0]; int w = 1, b = 0, I = 0; while((I == 1 && w < N) || (I == 0 && b < M)) { if(I == 0) { if(B[b] < cur) { cur = B[b]; Z ++; I ++; } b ++; } if(I == 1) { if(W[w] < cur) { cur = W[w]; Z ++; I = 0; } w ++; } } max = std::max(max, Z); Z = 1, cur = B[0]; w = 0, b = 1, I = 0; while((I == 0 && w < N) || (I == 1 && b < M)) { if(I == 0) { if(W[w] < cur) { cur = W[w]; Z ++; I ++; } w ++; continue; } if(I == 1) { if(B[b] < cur) { cur = B[b]; Z ++; I = 0; } b ++; } } max = std::max(max, Z); std::cout << max; } int main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); int T = 1; //std::cin >> T; while (T--) { solve(); } return 0; }