#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
int n,m;//n是代理服务器,m是被访问服务器
cin>>n;
cin.ignore();//如果
vector<string> dl;
vector<string> bfw;
for(int i=0;i<n;i++)
{
string s;
getline(cin,s);
dl.push_back(s);
}
cin>>m;
cin.ignore();
for(int i=0;i<m;i++)
{
string s;
getline(cin,s);
bfw.push_back(s);
}
int begin=0;
int count=0;
int mm=-1;
int ks=0;
while(begin<m)
{
for(int i=0;i<n;i++)
{
ks=begin;
while(dl[i]!=bfw[ks] && ks!=m)//当ks==m时
{
ks++;
}
//此时str和被访问到的服务器地址相同
ks=max(ks,mm);
mm=ks;
}
if(ks!=begin)
{
count++;
begin=ks;
mm=-1;
}
else{
break;
}
}
if(count==0)
{
cout<<-1<<endl;
}
else{
cout<<count-1<<endl;
}
return 0;
}