#include #define rep(i,a,b) for(int i=a;i> N >> A; rep(i, 0, A) cin >> B[i]; cin >> C; rep(i, 0, C) cin >> D[i]; sort(B, B + A); sort(D, D + C); int cntA = A, cntC = C; int usedA[50], usedC[50]; rep(i, 0, 50) usedA[i] = usedC[i] = 0; int ans = 0; rep(q, 0, N) { bool ng = true; rep(a, 0, A) if(!usedA[a]){ int mi = 1010; rep(i, 0, C) if (!usedC[i] && D[i] < B[a]) mi = min(mi, D[i]); if (mi != 1010) { ans++; usedA[a] = 1; cntA--; rep(i, 0, C) if (!usedC[i] && D[i] == mi) { usedC[i] = 1; cntC--; break; } ng = false; break; } } if (ng) { int mi = 1010; rep(i, 0, A) if (!usedA[i]) mi = min(mi, B[i]); int ma = 0; rep(i, 0, C) if (!usedC[i]) ma = max(ma, D[i]); rep(i, 0, A) if (!usedA[i] && B[i] == mi) { usedA[i] = 1; cntA--; break; } rep(i, 0, C) if (!usedC[i] && D[i] == ma) { usedC[i] = 1; cntC--; break; } } if (cntA == 0) { cntA = A; rep(i, 0, A) usedA[i] = 0; } if (cntC == 0) { cntC = C; rep(i, 0, C) usedC[i] = 0; } } cout << ans << endl; }