むかしむかしあるところに、一人の泥棒がおりました。彼は財宝を追い求めて、世界中を駆け回っているのでありました。ある日彼は、世界の端に莫大な財宝が眠る島々があるという噂を聞き付けたので、そこに向かうことにしたのでした。
彼が向かった先には、財宝の眠る n 個の島と、何もない1つの島がありました。ほとんどの島には浜辺がなく、彼が唯一上陸できたのは何もない島でした。彼は島中を歩き回ったところ、この島から他の n 個の島に向かって1本ずつ、古いつり橋がかかっているのを見付けたのでした。
彼は財宝の眠る島々を一つずつ巡り、そこにある財宝を全て回収することにしました。盗まれるのが怖いので、彼は既に回収した全ての財宝を持ったまま島々を回ります。彼はとっても力持ちなので全ての財宝を一度に運ぶことができますが、しかし古いつり橋は、一定量以上の財宝を持った状態で渡ると崩れてしまいます。
島を巡る順番を適切に選ぶことで、彼が全ての財宝を回収して、上陸した島に戻ってこられるかどうかを判定するプログラムを書いてください。
入力は複数のデータセットから構成されています。
各データセットの最初の行には、整数 n が与えられます。 続く n 行には島の情報が与えられます。各行は2つの整数を含み、それぞれその島にある財宝の量と、その島にかかっているつり橋を渡るときに所持できる最大の財宝の量を表します。
入力の最後は n = 0 のケースによって示されます。
全ての財宝を回収して戻ってこられるならば "Yes" と、そうでなければ "No" と出力してください.
3 2 3 3 6 1 2 3 2 3 3 5 1 2 0
Yes No