차익 거래(arbitrage)는 환율의 차이를 이용해 한 통화의 1단위를 같은 통화의 1단위보다 많은 양으로 바꾸는 것을 말한다. 예를 들어 1 미국 달러로 0.5 영국 파운드를 살 수 있고, 1 영국 파운드로 10.0 프랑스 프랑을 살 수 있으며, 1 프랑스 프랑으로 0.21 미국 달러를 살 수 있다고 하자. 그러면 영리한 트레이더는 1 미국 달러로 시작해 통화를 차례로 교환하여 $0.5 \times 10.0 \times 0.21 = 1.05$ 미국 달러를 얻을 수 있고, 5 퍼센트의 이익을 남긴다.
통화 환율의 목록을 입력받아 이러한 차익 거래가 가능한지 판별하는 프로그램을 작성하라.
입력은 하나 이상의 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫 줄에는 서로 다른 통화의 수를 나타내는 정수 $n$ ($1 \le n \le 30$)이 주어진다. 이어지는 $n$개의 줄에는 각각 통화의 이름이 하나씩 주어지며, 이름에는 공백이 포함되지 않는다. 그 다음 줄에는 뒤따르는 환율 표의 길이를 나타내는 정수 $m$이 주어진다. 이어지는 $m$개의 줄에는 각각 출발 통화의 이름 $c_i$, $c_i$에서 $c_j$로의 환율을 나타내는 실수 $r_{ij}$, 도착 통화의 이름 $c_j$가 주어진다. 표에 나타나지 않는 교환은 불가능하다.
테스트 케이스는 빈 줄로 구분된다. 입력은 $n$의 값이 $0$인 줄로 끝난다.
각 테스트 케이스마다 한 줄을 출력한다. 차익 거래가 가능하면 "Case $c$: Yes", 불가능하면 "Case $c$: No" 형식으로 출력하며, 여기서 $c$는 1부터 시작하는 테스트 케이스 번호이다.