Simpson 氏は少し疲れを感じながら起きました。つらい仕事の一日がまた始まりました。オフィスの机には、確認を待つ答案が山積みでした。数学の授業の問題に対する学生たちの答えが書かれていましたが、それらはただのインクの染みのように見えました。
彼の頭痛の原因は学生たちの「創造性」でした。各問題について、さまざまな答え方をしてきました。彼自身は各問題への答えを持っており、当然正しく、自分の美的観点では最もよいものです。
一部の学生は期待される答えと同値な代数式を書きましたが、その文字の形は Simpson 氏の答えとは大きく異なっていました。一部は彼の答えと同値でないのに、とても似た式を書きました。彼と全く同じ答えを書いた学生はわずかでした。
各式が用意した答えと数学的に同値か確認することが彼の責務です。美的基準に合わなくても、彼の答えと同値な式が「不正解」とされるのを防ぐためです。
彼は式の確認にすでに 5 日を費やしていました。突然立ち上がって叫びました。「もうたくさんだ!助けを求めなくては。」
各答えが「正しい」答えと同値か Simpson 氏が判断するのを助けるプログラムを作成してください。答案に書かれた代数式は、変数記号 $a,b,\ldots,z$ に関する整数係数の多変数多項式です。例えば $(a+b^2)(a-b^2)$、$ax^2+2bx+c$、$(x^2+5x+4)(x^2+5x+6)+1$ です。
Simpson 氏は答案に書かれたまま各式を入力します。入力する代数式は、加法演算子 + と - で区切られた項の列であり、演算子があればそれによる項の和を表すと約束します。項は因子を並べたもので、その積を表します。因子は (a) 十進の数字列による非負整数、(b) 変数記号(小文字 a から z の 1 文字)で、後ろに記号 ^ と 0 でない数字を伴い変数のべきを表すこともあるもの、または (c) 括弧で囲まれた代数式で、再帰的に定義されます。演算子 + と - は二項演算子としてのみ現れ、被演算子の符号を指定する単項演算子としては現れません。
整数が別の整数、または記号 ^ の後の数字の直後に続く場合、その整数の前に 1 個以上の空白を入れると彼は言います。読みやすくするため式の各所に空白を入れることもありますが、1 つの整数の連続する 2 桁の間には決して空白を入れません。式はそれほど複雑ではなく、式中の - を + に置き換えれば、係数と変数のべきの積の和に完全に展開しても、変数の $10$ 乗や 10 億より大きい係数は現れません。
入力
入力は行のブロックの列です。各ブロックは、式を 1 つずつ含む行と終端行からなります。最後のブロックの後にはさらに終端行が 1 行あります。終端行はピリオド 1 個だけの行です。
ブロックの最初の式は Simpson 氏が用意したもので、それに続くすべての式は学生の答えです。式は小文字、数字、演算子 +、-、^、括弧 (、)、空白からなります。式を含む行の長さは 80 文字以下です。
出力
学生の各答えについて、期待される答えと数学的に同値かどうかに応じて、yes または no だけからなる行を出力してください。各ブロックの後には、ピリオド 1 個だけからなる行を出力してください。
入出力例
入力 1
a+b+c (a+b)+c a-(b-c)+2 . 4ab (a - b)(0-b+a) - 1a ^ 2 - b ^ 2 2 b 2 a . 108 a 2 2 3 3 3 a 4 a^1 27 . .
出力 1
yes no . no yes . yes yes .