#include <iostream>
#include <algorithm>
#include <vector>
#include <set>
#include <map>
#include <deque>
#include <queue>
#include <string.h>
#include <stack>
using namespace std;
#define rep(i, a, b) for(int i = a; i < (b); ++i)
typedef long long ll;
typedef pair<int,int> P;
int main() {
    int n,m;
    cin >> n;
    map<string, int>blue;
    map<string, int>red;
    rep(i, 0, n){
        string in;
        cin >> in;
        blue[in]++;
    }
    cin>>m;
    rep(i, 0, m){
        string in;
        cin >> in;
        red[in]++;
    }
    int ans = 0;
    for(auto i: blue){
        int blucnt =i.second;
        if(red[i.first] != 0){
            blucnt-=red[i.first];
        }
        ans = max(ans, blucnt);
    }
    cout << ans << endl;
    return 0;
}

#include <bits/stdc++.h>
using namespace std;

int main(){
	int n, m;
	cin >> n;
	vector<string> s(n);
	for(int i=0; i<n; i++){
		cin >> s.at(i);
	}
	cin >> m;
	vector<string> t(m);
	for(int i=0; i<m; i++){
		cin >> t.at(i);
	}
	vector<int> num(n);
	for(int i=0; i<n; i++){
		for(int j=i; j<n; j++){
			if(s.at(i)==s.at(j)){
				num.at(i)++;
			}
		}
	}
	for(int i=0; i<n; i++){
		for(int j=0; j<m; j++){
			if(s.at(i)==t.at(j)){
				num.at(i)--;
			}
		}
	}
	sort(num.begin(), num.end());
	reverse(num.begin(), num.end());
	if(num.at(0)>=0){
		cout << num.at(0) << endl;
	}
	if(num.at(0)<0){
		cout << 0 << endl;
	}
}
