#include<iostream>
#include<map>
#include<string>
#include<algorithm>
using namespace std;

int main(){
    map<string,int>s;
    map<string,int>t;
    int n,m;
    cin>>n;
    string str;
    for(int i=0;i<n;i++){
        cin>>str;
        s[str]++;
    }
    cin>>m;
    for(int i=0;i<m;i++){
        cin>>str;
        t[str]++;
    }
    int ans=0;
    for(auto i=s.begin();i!=s.end();i++){
        ans=max(ans,s[i->first]-t[i->first]);
    }
    cout<<ans<<endl;

    return 0;
}
#include <algorithm>
#include <cmath>
#include <iomanip>
#include <iostream>
#include <map>
#include <queue>
#include <utility>
#include <vector>
#define rep(i, n) for (int i = 0, i##_len = (n); i < i##_len; ++i)
#define reps(i, n) for (int i = 1, i##_len = (n); i <= i##_len; ++i)
#define rrep(i, n) for (int i = ((int)(n)-1); i >= 0; --i)
#define rreps(i, n) for (int i = ((int)(n)); i > 0; --i)
#define INF 1000000000000
#define MOD 1000000007
#define CHOOSE(a) CHOOSE2 a
#define CHOOSE2(a0, a1, a2, a3, a4, x, ...) x
#define debug_1(x1) cout << #x1 << ": " << x1 << endl
#define debug_2(x1, x2) \
    cout << #x1 << ": " << x1 << ", " #x2 << ": " << x2 << endl
#define debug_3(x1, x2, x3)                                                 \
    cout << #x1 << ": " << x1 << ", " #x2 << ": " << x2 << ", " #x3 << ": " \
         << x3 << endl
#define debug_4(x1, x2, x3, x4)                                             \
    cout << #x1 << ": " << x1 << ", " #x2 << ": " << x2 << ", " #x3 << ": " \
         << x3 << ", " #x4 << ": " << x4 << endl
#define debug_5(x1, x2, x3, x4, x5)                                         \
    cout << #x1 << ": " << x1 << ", " #x2 << ": " << x2 << ", " #x3 << ": " \
         << x3 << ", " #x4 << ": " << x4 << ", " #x5 << ": " << x5 << endl
#ifdef _DEBUG
#define debug(...)                                                        \
    CHOOSE((__VA_ARGS__, debug_5, debug_4, debug_3, debug_2, debug_1, ~)) \
    (__VA_ARGS__)
#else
#define debug(...)
#endif

using namespace std;
using ll = long long;

int main() {
    ll n, cnt = 0;
    cin >> n;
    vector<ll> a(n), b(n), c(n);
    rep(i, n) { cin >> a[i]; }  //上部
    rep(i, n) { cin >> b[i]; }  //中部
    rep(i, n) { cin >> c[i]; }  //下部
    sort(a.begin(), a.end());
    sort(b.begin(), b.end());
    sort(c.begin(), c.end());

    for (auto v_b : b) {
        // 未満を求める
        auto iter_a = lower_bound(a.begin(), a.end(), v_b);
        auto idx_a = distance(a.begin(), iter_a);
        // 上を求める
        auto iter_c = upper_bound(c.begin(), c.end(), v_b);
        auto idx_c = distance(c.begin(), iter_c);
        debug(v_b, idx_a, idx_a, c.size() - idx_c);
        cnt += (c.size() - idx_c) * (idx_a);
    }
    cout << cnt << endl;
    return 0;
}