#include<stdio.h>
#include<string.h>
#include<queue>
#include<algorithm>
#include<map>
#include<string>
#include<iostream>
using namespace std;
const int N = 50;
map<string, int> mp;
int cnt;
int n, m;
double a[N][N];
int main()
{
int _ = 1;
cin.sync_with_stdio( 0 );
while( cin >> n )
{
if( !n )
break;
string t, s;
int u, v;
mp.clear();
for( int i = 1; i <= n; i++ )
{
cin >> t;
mp[t] = i;
}
for ( int i = 1; i <= n; i++ )
{
for( int j = 1; j <= n; j++ )
{
a[i][j] = 0;
if(i == j)
a[i][i] = 1;
}
}
cin >> m;
double w;
while( m-- )
{
cin >> s >> w >> t;
u = mp[s];
v = mp[t];
a[u][v] = max(a[u][v], w);
}
for( int k = 1; k <= n; k++ )
{
for( int i = 1; i <= n; i++ )
{
for( int j = 1; j <= n; j++ )
{
if( a[i][j] = max(a[i][j], a[i][k] * a[k][j]));
}
}
}
bool f = 0;
for( int i = 1; i <= n; i++ )
{
if(a[i][i] > 1)
{
f = 1;
break;
}
}
cout << "Case " << _++ << ": ";
if( f )
{
cout << "Yes" << endl;
}
else
{
cout << "No" << endl;
}
}
return 0;
}
开始竟然看都没看愚蠢的spfa= =