#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;
}