#include<iostream>
#include<cstdio>
#include<map>
#include<cstring>
#include<algorithm>
using namespace std;
int n;
double e[40][40];
bool floyd()
{
for(int k=1; k<=n; k++)
for(int i=1; i<=n; i++)
{
for(int j=1; j<=n; j++)
{
double t=e[i][k]*e[k][j]*1.0;
e[i][j]=max(e[i][j],t);
}
if(e[i][i]>1.0) return 1;
}
return 0;
}
int main()
{
int cnt=0;
while(~scanf("%d",&n))
{
if(n==0) break;
char a[150],b[150];
map<string,int>mp;
for(int i=1; i<=n; i++)
{
cin>>a;
mp[a]=i;
}
int m;
double w;
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
i==j? e[i][i]=1.0:e[i][j]=e[j][i]=0;
scanf("%d",&m);
for(int i=1; i<=m; i++)
{
cin>>a>>w>>b;
e[mp[a]][mp[b]]=w;
}
floyd()? printf("Case %d: Yes\n",++cnt):printf("Case %d: No\n",++cnt);
}
return 0;
}