#include<bits/stdc++.h>
using namespace std;
const int N = 1e3 + 10;
const int M = 1e5 + 5;
int n, m; int cnt = N, len = N;
int vis[N];
string wor[N];
string art[M];
typedef pair<int, int> PII;
PII ans;
int word_search(string s)
{
int l = 0; int r = n + 1; int mid;
while (l + 1 != r)
{
mid = (l + r) >> 1;
if (s == wor[mid])
return mid;
else if (s < wor[mid])
r = mid;
else
l = mid;
}
return mid;
}
bool word_observe(int x)
{
int counts = 0;
for (int i = 1; i <= n; i++)
if (vis[i]) counts++;
return x == counts;
}
bool check(int x)
{
memset(vis, 0, N * 4);
int i = 1, j = 1;
for (; i <= m; i++)
{
int flag = 0;
vis[word_search(art[i])]++;
while (j <= i && word_observe(x))
{
flag = 1;
vis[word_search(art[j])]--;
j++;
}
if (flag)
{
if(x > ans.first)
{
ans.first = x;
ans.second = i - j + 2;
}
else if(x == ans.first && ans.second > (i - j + 2))
ans.second = (i - j + 2);
else continue ;
}
}
if (i == n && j == 1) return 0;
return 1;
}
int main()
{
scanf("%d", &n);
for (int i = 1; i <= n; i++)
cin >> wor[i];
sort(wor + 1, wor + 1 + n);
scanf("%d", &m);
for (int i = 1; i <= m; i++)
cin >> art[i];
int l = 0; int r = n + 1; int mid;
while (l + 1 != r)
{
mid = (l + r) >> 1;
if (check(mid))
l = mid;
else
r = mid;
}
printf("%d\n%d", ans.first, ans.second);
return 0;
}