#include<iostream>
#include<string>

using namespace std;

int main()
{
	for(;;)
	{
		string all_item[101][101];
		int item_price[101],item_num[100]={0};
		int item_flag[101]={0};
		int n,m,nm,i,j,k,l,o,y,d;
		
		cin >> n ;
		if(n==0)
			break;
		
		for(i=0;i<n;i++)
			cin >> all_item[i][0] >> item_price[i];
		
		cin >> m ;
		for(i=0;i<m;i++)
		{
			int s_price[101]={0};
			string item;
			cin >> item >> nm ;
			
			for(j=0;j<n;j++)
				if(all_item[j][0]==item)
					break;
			
			for(k=0;k<nm;k++)
			{
				cin >> item ;
				for(y=0;y<n;y++)
				{
					if(item==all_item[y][0])
						break;
				}
				item_num[y]++;
				all_item[y][item_num[y]]=all_item[j][0];
				
				s_price[j]+=item_price[y];
			}
			if(s_price[j]<item_price[j])
			{
				int a;
				a=item_price[j]-s_price[j];
				item_price[j]=s_price[j];
				
				A:;
				
				for(o=1;o<=item_num[j];o++)
				{
					if(all_item[j][o]!="0")
					{
						for(int r=0;r<n;r++)
						{
							if(all_item[j][o]==all_item[r][0])
							{
//								cout << "mt_item:" << all_item[j][0] << "\nfinish_item:" << all_item[j][o] << endl;
								item_price[r]-=a;
								if(item_num[r]>0)
								{
									item_flag[r]=1;
								}
//								all_item[j][o]="0";
								break;
							}
						}
					}
				}
				for(d=0;d<n;d++)
				{
					if(item_flag[d]==1)
					{
						item_flag[d]=0;
						j=d;
						goto A;
					}
				}
			}
		}
		string last;
		cin >> last ;
		for(i=0;i<n;i++)
		{
			if(all_item[i][0]==last)
			{
				cout << item_price[i] << endl;
				break;
			}
		}
	}
}