#include<iostream>
#include<utility>
#include<queue>
#include<functional>
#include<cstring>
#include<vector>
#include<climits>
#include<map>
using namespace std;
#define FOR(i,n) for(int i=0;i<(int)n;i++)
#define FORI(i,k,n) for(int i=k;i<(int)n;i++)
typedef pair<int,int> pii;


int main()
{
	while(1)
	{
		int n;
		map<string,int> a;
		
		cin>>n;if(!n)break;
		FOR(i,n)
		{
			string s;int v;
			cin>>s>>v;
			a[s]=v;
		}
		
		int m;
		cin>>m;
		vector<string> r[100];
		FOR(i,m)
		{
			string o;cin>>o;
			int k;cin>>k;
			r[i].push_back(o);
			FOR(j,k)
			{
				string x;cin>>x;
				r[i].push_back(x);
			}
		}
		
		bool ok=true;
		while(ok)
		{
			ok=false;
			FOR(i,m)
			{
				int v=0;
				FORI(j,1,r[i].size())
				{
					v+=a[r[i][j]];
				}
				if(v<a[r[i][0]])
				{
					a[r[i][0]]=v;
					ok=true;
				}
			}
		}
		string f;cin>>f;
		cout<<a[f]<<endl;
		
	}
}