/*/ Author: _Math.man /*/
#include<bits/stdc++.h>
using namespace std;
/*/---------------------------Defines-----------------------------------------/*/
#pragma GCC optimize("Ofast")
#define int long long
#define IOS ios_base::sync_with_stdio(false);cin.tie(NULL);
#define pb push_back
#define eb emplace_back
#define fn for(int i =0 ;i <n;i++)
#define fn1 for( int i =1;i<=n; i++)
#define fm for(int j =0 ;j <m;j++)
#define fm1 for(int j =1;j<=m;j++)
#define fi first
#define se second
#define endl '\n'
#define PI 3.14159265358979323846
#define MOD 1000000007
#define all(a) a.begin(),a.end()
#define rall(a) a.rbegin(),a.rend()
const int N = 2e6+5;
const int INF = 1e18L;
//mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());
/*/-----------------------------Debug begins----------------------------------/*/
vector<string> split(const string& s, char c) {
vector<string> v; stringstream ss(s); string x;
while (getline(ss, x, c)) v.emplace_back(x); return move(v);
}
template<typename T, typename... Args>
inline string arrStr(T arr, int n) {
stringstream s; s << "[";
for(int i = 0; i < n - 1; i++) s << arr[i] << ",";
if(n>0)
s << arr[n - 1] ;
s<< "]";
return s.str();
}
#define trace(args...) {__trace_begin(__LINE__); __trace(split(#args, ',').begin(), args);}
inline void __trace_begin(int line) { cerr << "#" << line << ": "; }
template<typename T> inline void __trace_out_var(vector<T> val) { cerr << arrStr(val, val.size()); }
template<typename T> inline void __trace_out_var(T* val) { cerr << arrStr(val, 10); }
template<typename T> inline void __trace_out_var(T val) { cerr << val; }
inline void __trace(vector<string>::iterator it) { cerr << endl; }
template<typename T, typename... Args>
inline void __trace(vector<string>::iterator it, T a, Args... args) {
cerr << it->substr((*it)[0] == ' ', it->length()) << "=";
__trace_out_var(a);
cerr << "; ";
__trace(++it, args...);
}
/*/-----------------------------Code begins----------------------------------/*/
int ar[N];
int dp[N];
void go(string s,map<int,set<int>>&b,map<int,set<int>>&a){
int cur =1;
for(int i =0 ;i<s.size();i++){
int no =0 ;
while(i<s.size()){
if(s[i]=='&'){
b[cur].insert(no);
a[no].insert(cur);
no =0 ;
i++;
}else if(s[i]==','){
if(no>0){
b[cur].insert(no);
a[no].insert(cur);
no =0 ;
}
break;
}
no*=10;
no+=s[i]-'0';
i++;
}
++cur;
}
}
signed main(){
// #ifndef ONLINE_JUDGE
// freopen("input.txt","r",stdin);
// freopen("output.txt","w",stdout);
// #endif
IOS;
int T=1;
// cin >> T;
while(T--){
int n,m;
cin >> n ;
string s;
cin.ignore();
getline(cin,s);
cin>>m;
cin.ignore();
string t;
cin>>t;
t+=',';
s+=',';
map<int,set<int>>bank,part;
go(s,bank,part);
go(t,part,bank);
int ans=0;
for(auto i : bank){
ans=max(ans,(int)i.se.size());
}
for(auto i : part){
ans=max(ans,(int)i.se.size());
}
cout << ans <<'\n';
}
return 0;
}
LyovIEF1dGhvcjogX01hdGgubWFuIC8qLwoKI2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsgICAgCgovKi8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1EZWZpbmVzLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vKi8KCiNwcmFnbWEgR0NDIG9wdGltaXplKCJPZmFzdCIpIAojZGVmaW5lIGludCBsb25nIGxvbmcKI2RlZmluZSBJT1MgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7Y2luLnRpZShOVUxMKTsKI2RlZmluZSBwYiBwdXNoX2JhY2sgCiNkZWZpbmUgZWIgZW1wbGFjZV9iYWNrCiNkZWZpbmUgZm4gZm9yKGludCBpID0wIDtpIDxuO2krKykgIAojZGVmaW5lIGZuMSBmb3IoIGludCBpID0xO2k8PW47IGkrKykKI2RlZmluZSBmbSBmb3IoaW50IGogPTAgO2ogPG07aisrKQojZGVmaW5lIGZtMSBmb3IoaW50IGogPTE7ajw9bTtqKyspCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBlbmRsICdcbicKI2RlZmluZSBQSSAgMy4xNDE1OTI2NTM1ODk3OTMyMzg0NgojZGVmaW5lIE1PRCAxMDAwMDAwMDA3CiNkZWZpbmUgYWxsKGEpIGEuYmVnaW4oKSxhLmVuZCgpCiNkZWZpbmUgcmFsbChhKSBhLnJiZWdpbigpLGEucmVuZCgpCmNvbnN0IGludCBOID0gMmU2KzU7ICAgIApjb25zdCBpbnQgSU5GID0gMWUxOEw7Ci8vbXQxOTkzN182NCBybmcoY2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpLnRpbWVfc2luY2VfZXBvY2goKS5jb3VudCgpKTsKLyovLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1EZWJ1ZyBiZWdpbnMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLyovCnZlY3RvcjxzdHJpbmc+IHNwbGl0KGNvbnN0IHN0cmluZyYgcywgY2hhciBjKSB7CiAgICB2ZWN0b3I8c3RyaW5nPiB2OyBzdHJpbmdzdHJlYW0gc3Mocyk7IHN0cmluZyB4OwogICAgd2hpbGUgKGdldGxpbmUoc3MsIHgsIGMpKSB2LmVtcGxhY2VfYmFjayh4KTsgcmV0dXJuIG1vdmUodik7Cn0KdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUuLi4gQXJncz4KaW5saW5lIHN0cmluZyBhcnJTdHIoVCBhcnIsIGludCBuKSB7CiAgICBzdHJpbmdzdHJlYW0gczsgcyA8PCAiWyI7CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbiAtIDE7IGkrKykgcyA8PCBhcnJbaV0gPDwgIiwiOwogICAgaWYobj4wKQogICAgcyA8PCBhcnJbbiAtIDFdIDsKICAgIHM8PCAiXSI7CiAgICByZXR1cm4gcy5zdHIoKTsKfQojZGVmaW5lIHRyYWNlKGFyZ3MuLi4pIHtfX3RyYWNlX2JlZ2luKF9fTElORV9fKTsgX190cmFjZShzcGxpdCgjYXJncywgJywnKS5iZWdpbigpLCBhcmdzKTt9CmlubGluZSB2b2lkIF9fdHJhY2VfYmVnaW4oaW50IGxpbmUpIHsgY2VyciA8PCAiIyIgPDwgbGluZSA8PCAiOiAiOyB9CnRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSB2b2lkIF9fdHJhY2Vfb3V0X3Zhcih2ZWN0b3I8VD4gdmFsKSB7IGNlcnIgPDwgYXJyU3RyKHZhbCwgdmFsLnNpemUoKSk7IH0KdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIHZvaWQgX190cmFjZV9vdXRfdmFyKFQqIHZhbCkgeyBjZXJyIDw8IGFyclN0cih2YWwsIDEwKTsgfQp0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgdm9pZCBfX3RyYWNlX291dF92YXIoVCB2YWwpIHsgY2VyciA8PCB2YWw7IH0KaW5saW5lIHZvaWQgX190cmFjZSh2ZWN0b3I8c3RyaW5nPjo6aXRlcmF0b3IgaXQpIHsgY2VyciA8PCBlbmRsOyB9CiAKdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUuLi4gQXJncz4KaW5saW5lIHZvaWQgX190cmFjZSh2ZWN0b3I8c3RyaW5nPjo6aXRlcmF0b3IgaXQsIFQgYSwgQXJncy4uLiBhcmdzKSB7CiAgICBjZXJyIDw8IGl0LT5zdWJzdHIoKCppdClbMF0gPT0gJyAnLCBpdC0+bGVuZ3RoKCkpIDw8ICI9IjsKICAgIF9fdHJhY2Vfb3V0X3ZhcihhKTsKICAgIGNlcnIgPDwgIjsgIjsKICAgIF9fdHJhY2UoKytpdCwgYXJncy4uLik7Cn0KLyovLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1Db2RlIGJlZ2lucy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vKi8KaW50IGFyW05dOwppbnQgZHBbTl07CnZvaWQgZ28oc3RyaW5nIHMsbWFwPGludCxzZXQ8aW50Pj4mYixtYXA8aW50LHNldDxpbnQ+PiZhKXsKICBpbnQgY3VyID0xOwogIGZvcihpbnQgaSA9MCA7aTxzLnNpemUoKTtpKyspewogICAgaW50IG5vID0wIDsKICAgIHdoaWxlKGk8cy5zaXplKCkpewogICAgICBpZihzW2ldPT0nJicpewogICAgICAgIGJbY3VyXS5pbnNlcnQobm8pOwogICAgICAgIGFbbm9dLmluc2VydChjdXIpOwogICAgICAgIG5vID0wIDsKICAgICAgICBpKys7CiAgICAgIH1lbHNlIGlmKHNbaV09PScsJyl7CiAgICAgICBpZihubz4wKXsKICAgICAgICBiW2N1cl0uaW5zZXJ0KG5vKTsKICAgICAgICBhW25vXS5pbnNlcnQoY3VyKTsKICAgICAgICBubyA9MCA7CiAgICAgICB9CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgICAgbm8qPTEwOwogICAgICBubys9c1tpXS0nMCc7CiAgICAgIGkrKzsKICAgIH0KICAgICsrY3VyOwogIH0KfQpzaWduZWQgbWFpbigpewogICAgLy8gI2lmbmRlZiBPTkxJTkVfSlVER0UKICAgIC8vIGZyZW9wZW4oImlucHV0LnR4dCIsInIiLHN0ZGluKTsKICAgIC8vIGZyZW9wZW4oIm91dHB1dC50eHQiLCJ3IixzdGRvdXQpOwogICAgLy8gI2VuZGlmCiAgICBJT1M7CiAgICBpbnQgVD0xOwogICAgLy8gY2luID4+IFQ7CiAgICB3aGlsZShULS0pewogICAgICBpbnQgbixtOwoJICBjaW4gPj4gbiA7CgkgIHN0cmluZyBzOwoJICBjaW4uaWdub3JlKCk7CgkgIGdldGxpbmUoY2luLHMpOwoJICBjaW4+Pm07CgkgIGNpbi5pZ25vcmUoKTsKCSAgc3RyaW5nIHQ7CgkgIGNpbj4+dDsKCSAgdCs9JywnOwoJICBzKz0nLCc7CgkgIG1hcDxpbnQsc2V0PGludD4+YmFuayxwYXJ0OwoJICBnbyhzLGJhbmsscGFydCk7CgkgIGdvKHQscGFydCxiYW5rKTsKCSAgaW50IGFucz0wOwoJICBmb3IoYXV0byBpIDogYmFuayl7CgkgIAlhbnM9bWF4KGFucywoaW50KWkuc2Uuc2l6ZSgpKTsKCSAgfQoJICAgZm9yKGF1dG8gaSA6IHBhcnQpewoJICAJYW5zPW1heChhbnMsKGludClpLnNlLnNpemUoKSk7CgkgIH0KCSAgY291dCA8PCBhbnMgPDwnXG4nOwogICAgICAKICAgIH0KICAgIHJldHVybiAwOwp9