1 #include<iostream>
2 #include<map>
3 #include<vector>
4 #include<string>
5 #define M 0
6 double ma[50][50],bi;
7 using namespace std;
8 bool floyd(int n)
9 {
10 int i,j,k,m;
11
12 for(i=1;i<=n;i++)
13 for(j=1;j<=n;j++)
14 for(k=1;k<=n;k++)
15 if(ma[j][k]<ma[j][i]*ma[i][k])
16 ma[j][k]=ma[j][i]*ma[i][k];
17 for(i=1;i<=n;i++)
18 if(ma[i][i]>1)
19 return true;
20 return false;
21 }
22 int main()
23 {
24 map<string,int>fuck;
25 int i,j,k,n,m,p,q,count=1;
26 string cash,cash2;
27 while(cin>>n&&n)
28 {
29 for(i=1;i<=n;i++)
30 {
31 cin>>cash;
32 fuck[cash]=i;
33 }
34 for(i=1;i<=n;i++)
35 for(j=1;j<=n;j++)
36 ma[i][j]=ma[j][i]=M;
37 cin>>m;
38 for(i=1;i<=m;i++)
39 {
40 cin>>cash;
41 p=fuck[cash];
42 cin>>bi;
43 cin>>cash2;
44 q=fuck[cash2];
45 ma[p][q]=bi;
46 }
47 if(floyd(n))
48 cout<<"Case "<<count<<": Yes"<<endl;
49 else
50 cout<<"Case "<<count<<": No"<<endl;
51 count++;
52 }
53 }
54