#include <bits/stdc++.h>
#define pep_Guardiola      \
  ios::sync_with_stdio(0); \
  cin.tie(0);              \
  cout.tie(0);
using namespace std;
const long double eps = 1e-9;
int t = 1;
struct Edge
{
  int u, v;
  long double w;
  Edge(int u, int v, long double w) : u(u), v(v), w(w) {}
  Edge() = default;
};
int main(void)
{
  pep_Guardiola int n;
  while (cin >> n)
  {
    if (!n)
      break;
    int id = 0;
    map<string, int> mp;
    for (int i = 0; i < n; i++)
    {
      string s;
      cin >> s;
      mp[s] = id++;
    }
    int m;
    cin >> m;
    vector<Edge> a(m);
    for (int i = 0; i < m; i++)
    {
      string s, t;
      long double w;
      cin >> s >> w >> t;
      a[i] = Edge(mp[s], mp[t], w);
    }

    function<bool(int)> go = [&](int src) -> bool
    {
      vector<long double> dist(id + 1, 0.0);
      dist[src] = 1.0;
      function<bool(int, int, long double)> relax = [&](int u, int v, long double w) -> bool
      { return ((dist[u] * w) > dist[v] + eps) ? (dist[v] = dist[u] * w, true) : false; };
      for (int i = 0; i < n; i++)
        for (auto &[u, v, w] : a)
          relax(u, v, w);
      return dist[src] > (1.0 + eps);
    };
    bool ok = 0;
    for (int i = 0; i < id; i++)
      ok |= (go(i));
    cout << "Case " << t++ << ": " << (ok ? "Yes\n" : "No\n");
  }
}