}
bool Bellman(const vector<Edge>& E,int s,int n)
{
memset(x,0,sizeof(x));
x[s]=1;
for(int i=0;i<=n;i++){
for(int j=0;j!=E.size();j++){
if(Relax(E[j])&&i==n)return 0;
}
}
return 1;
}
int main()
{
freopen("1.txt","r",stdin);
int N,n,i,count=1;
double l;
map<string,int> m;
string s1,s2,s;
vector<Edge> E;
while(cin>>N&&N){
E.clear();
m.clear();
for(i=0;i<N;i++){cin>>s;m[s]=i;}
cin>>n;E.reserve(n);
for(i=0;i<n;i++){
cin>>s1>>l>>s2;
E.push_back(Edge(m[s1],m[s2],l));
}
cout<<"Case "<<count++<<": "<<(!Bellman(E,0,n)?"Yes":"No")<<endl;
//copy(x,x+n,ostream_iterator<double>(cout," "));cout<<endl;
}
}