京、垓、{禾予}、穣、溝、澗、正、載、極、恒河沙、阿僧祇、那由他、不可思議、無量大数 分、厘、毛、糸、忽、微、繊、沙、塵、埃、渺、漠、模糊、逡巡、須臾、瞬息、弾指、刹那、六徳、虚空、清浄、阿頼耶、阿摩羅、涅槃寂静   これらが何か分かるだろうか。これらは全て10の累乗につけられた数詞である。                 京 = 1016, 垓 = 1020, {禾予} = 1024, 穣 = 1028, 溝 = 1032, ... 分 = 10-1、厘 = 10-2、毛 = 10-3、糸 = 10-4、忽 = 10-5, ...  ではこれらが実用的に使われているのを見たことはあるだろうか？無いのではなかろうか？ 過去の先人達が熟考の末にこれらの命名を行ったにもかかわらず、これらの数詞が日の目を見られないとはなんと勿体無いことだろう。  この問題は、コンテスト参加者の皆様にこれらの数詞を知ってもらうために作られたものである。以下に問題の概要を示す。                1 km = 103 m  上記のような単位間の関係が入力として与えられる。この問題では、左辺における単位が右辺における単位の10の累乗倍となっているような単位間の関係だけが与えられる。 単位間の関係が矛盾しているとは、与えられた関係から以下の関係が同時に成り立つことをいう。                 1 A = 10x B 1 A = 10y B   ただし、 x≠yであり、 AとBは任意の単位。  入力として与えられた単位間の関係が矛盾しているかどうか判定せよ。 なお、入力は簡易のため指数表記で与えられる。
while 1:
    n = int(input())
    if n == 0:break
    m = []
    f = 1
    for _ in range(n):
        _, a, _, v, b = input().split()
        v = int(v[3:])
        x, y = -1, -1
        for i in range(len(m)):
            if a in m[i]:x = i
            if b in m[i]:y = i
        if x >= 0:
            if y >= 0:
                if x == y:
                    if m[x][a] - v != m[x][b]:f = 0
                else:
                    for i in m[y]:
                        m[x][i] = m[y][i] + m[x][a] - m[y][b] - v
                    m.pop(y)
            else:
                m[x][b] = m[x][a] - v
        elif y >= 0:
            m[y][a] = m[y][b] + v
        else:
            m.append({a:v, b:0})
    print("yes" if f else "no")

while 1:
    n = int(input())
    if n == 0:break
    m = []
    f = 1
    for _ in range(n):
        _, a, _, v, b = input().split()
        v = int(v[3:])
        x, y = -1, -1
        for i in range(len(m)):
            if a in m[i]:x = i
            if b in m[i]:y = i
        if x >= 0:
            if y >= 0:
                if x == y:
                    if m[x][a] - v != m[x][b]:f = 0
                else:
                    for i in m[y]:
                        m[x][i] = m[y][i] + m[x][a] - m[y][b] - v
                    m.pop(y)
            else:
                m[x][b] = m[x][a] - v
        elif y >= 0:
            m[y][a] = m[y][b] + v
        else:
            m.append({a:v, b:0})
    print("Yes" if f else "No")
