#include<iostream>
using namespace std;

int n;
string name[100];
int price[100];
int m;
string o[100];
int k[100];
string q[100][100];

int minprice(string item){
  int i,j;
  int tmp,min,flag;;

  for(i=0;i<n;i++){
    if(name[i] == item)min = price[i];
  }

  tmp = 0;
  flag = 0;
  for(i=0;i<m;i++){
    if(o[i] == item){
      flag = 1;
      for(j=0;j<k[i];j++){
	tmp += minprice(q[i][j]);
      }
    }
  }
  
  if(flag && min>tmp)return tmp;
  else return min;
}

int main(){
  int i,j;
  string item;

  while(1){
    cin >> n;
    if(!n)break;

    for(i=0;i<n;i++)cin >> name[i] >> price[i];

    cin >> m;
    for(i=0;i<m;i++){
      cin >> o[i] >> k[i];
      for(j=0;j<k[i];j++)cin >> q[i][j];
    }
    cin >> item;

    cout << minprice(item) <<endl;
  }
}