#include using namespace std; #define FOR(i,a,b) for(int i=(a);i<(b);i++) #define REP(i,n) FOR(i,0,n) #define ALL(v) (v).begin(),(v).end() template inline bool chmax(A &a, B b) { if (a inline bool chmin(A &a, B b) { if (a>b) { a=b; return 1; } return 0; } typedef unsigned long long ull; typedef long long ll; typedef pair pii; typedef pair pll; typedef pair P; const ll INF = 1ll<<60; const ll MOD = 1000000007; const double EPS = 1e-10; int n, m; vector w, b; int solve() { int res = 0; REP(s, 1< v; REP(i, n) if (s >> i & 1) v.push_back(w[i]); bool ng = false; int last = 0, cnt = 0; REP(i, v.size()) { if (last >= v[i]) { ng = true; break; } last = v[i]; cnt++; vector::iterator it = upper_bound(ALL(b), last); if (it == b.end()) { if (i + 1 != v.size()) ng = true; break; } last = *it; cnt++; } if (ng) continue; chmax(res, cnt); } return res; } int main() { cin >> n; w.resize(n); REP(i, n) cin >> w[i]; cin >> m; b.resize(m); REP(i, m) cin >> b[i]; sort(ALL(w)); sort(ALL(b)); int ans = solve(); swap(n, m); swap(w, b); chmax(ans, solve()); cout << ans << endl; return 0; }