#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <map>
#define INF 999999999
using namespace std;
std::map<string,int> z;
std::map<string,vector<string> > l;
int n;
int m;

int saisyo(string str){
	int ans=INF;
	if(z.count(str)!=0)ans=z[str];
	if(l.count(str)==0)return ans;
	int sum=0;
	for(int i=0;i<l[str].size();i++){
		sum+=saisyo(l[str][i]);
	}
	return min(ans,sum);
}

int main(void){
	while(cin>>n,n){
		z.clear();l.clear();
		string s;
		int v;
		for(int i=0;i<n;i++){
			cin>>s>>v;
			z[s]=v;
		}
		cin>>m;
		for(int i=0;i<m;i++){
			cin>>s>>v;
			string s2;
			for(int j=0;j<v;j++){
				cin>>s2;
				l[s].push_back(s2);
			}
		}
		cin>>s; //search
	cout<<saisyo(s)<<endl;
	}
	return 0;
}