#define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair i_i; typedef pair ll_i; typedef pair d_i; typedef pair ll_ll; typedef pair d_d; struct edge { int u, v; ll w; }; ll MOD = 1000000007; ll _MOD = 1000000009; double EPS = 1e-10; int main() { vector w(20), b(20); int N; cin >> N; while (N--) { int W; cin >> W; w[W - 1] = true; } cin >> N; while (N--) { int B; cin >> B; b[B - 1] = true; } int maxi = 0; for (int S = 0; S < (1 << 20); S++) { int cnt = 0; bool ok = true; for (int i = 0; i < 20; i++) { if (!(S & (1 << i))) continue; if (cnt % 2 == 0 && !w[i]) ok = false; if (cnt % 2 == 1 && !b[i]) ok = false; cnt++; } if (ok) maxi = max(maxi, cnt); } for (int S = 0; S < (1 << 20); S++) { int cnt = 0; bool ok = true; for (int i = 0; i < 20; i++) { if (!(S & (1 << i))) continue; if (cnt % 2 == 0 && !b[i]) ok = false; if (cnt % 2 == 1 && !w[i]) ok = false; cnt++; } if (ok) maxi = max(maxi, cnt); } cout << maxi << endl; }