すばらしいゲーム Pokenom Go がついに公開されました。Pokenom トレーナーは世界を旅し、野生の Pokenom を捕まえ、互いに戦えるようになりました!
Bash と Cee は、Pokenom トレーナーになるという子供の頃の夢を追うため、最近大学を中退した 2 人の学生です。今日、彼らのすばらしい冒険が始まります!
世界は $N$ 行 $M$ 列のグリッドと考えられます。行は下から上へ $1$ から $N$、列は左から右へ $1$ から $M$ まで番号が付いています。第 $r$ 行、第 $c$ 列のマスを $(r,c)$ と表します。
Bash の家はマス $(r_B,c_B)$ にあります。今日はマス $(r_G,c_G)$ にある Pokenom ジムへ行き、ほかの Pokenom トレーナーと戦います。ジムへの途中で、マス $(r_C,c_C)$ にある Cee の家にも寄りたいと考えています。
Bash の大学はマス $(r_U,c_U)$ にあります。大学を通ると嫌な記憶を思い出すため、Bash はジムへの道で大学を通りたくありません。
各歩で、Bash は上下左右の 4 方向のいずれかにのみ進み、現在のマスとちょうど 1 辺を共有するマスへ移動できます。そのため、経路はそれぞれ上、下、左、右を表す 4 種類の文字 U、D、L、R からなる文字列で一意に表せます。
単純な経路とは、始点と終点も含め、どのマスも 2 回以上訪れない経路です。
Bash は、マス $(r_B,c_B)$ からマス $(r_G,c_G)$ まで、マス $(r_C,c_C)$ を通り、マス $(r_U,c_U)$ を通らない単純な経路を探しています。できるだけ少ない歩数にしたいと考えています。Bash を助けてください!
入力
入力は複数のテストケースを含みます。各テストケースは 6 行で記述されます。
- 最初の行は、1 つの空白で区切られたちょうど 2 つの整数 $N$ と $M$ です。$1\le M,N\le100$ です。
- 2 行目は、1 つの空白で区切られたちょうど 2 つの整数 $r_B$ と $c_B$ です。
- 3 行目は、1 つの空白で区切られたちょうど 2 つの整数 $r_C$ と $c_C$ です。
- 4 行目は、1 つの空白で区切られたちょうど 2 つの整数 $r_G$ と $c_G$ です。
- 5 行目は、1 つの空白で区切られたちょうど 2 つの整数 $r_U$ と $c_U$ です。
- 6 行目は空行です。
- $1\le r_B,r_C,r_G,r_U\le N$、$1\le c_B,c_C,c_G,c_U\le M$ です。4 つのマス $(r_B,c_B),(r_C,c_C),(r_G,c_G),(r_U,c_U)$ は互いに異なります。
2 つのゼロを含む 1 行で入力が終わります。
すべてのテストケースにわたる $M\cdot N$ の合計は $10^5$ を超えません。
出力
各テストケースについて、指定されたすべての条件を満たす経路がない場合は、NO という単語をちょうど 1 行に出力してください。そうでなければ 2 行を出力してください。
- 最初の行には
YESという単語を含めてください。 - 2 行目には Bash の最短の単純な経路を表す文字列を含めてください。
最短の単純な経路が複数ある場合、どれを出力してもかまいません。
入出力例の図
入出力例
入力 1
3 3 1 1 3 3 2 1 2 2 3 4 1 1 3 4 2 1 1 2 2 2 2 1 2 2 1 2 1 1 0 0
出力 1
YES RRUULLD NO YES RD