精彩的游戏 Pokenom Go 刚刚发布。Pokenom 训练师现在可以环游世界,捕捉野生 Pokenom,并相互对战!
Bash 和 Cee 是两名学生,最近为了追求童年时成为 Pokenom 训练师的梦想而从大学退学。今天,他们奇妙的冒险开始了!
世界可以看作一个有 $N$ 行、$M$ 列的网格。行从下到上编号为 $1$ 到 $N$,列从左到右编号为 $1$ 到 $M$。第 $r$ 行第 $c$ 列的格子记为 $(r,c)$。
Bash 的家位于格子 $(r_B,c_B)$。今天,他将前往位于格子 $(r_G,c_G)$ 的 Pokenom 道馆,在那里与其他 Pokenom 训练师对战。在去道馆的路上,Bash 还想拜访位于格子 $(r_C,c_C)$ 的 Cee 的家。
Bash 的大学位于格子 $(r_U,c_U)$。Bash 不想在去 Pokenom 道馆的路上经过大学,因为这会勾起他的不愉快回忆。
每一步,Bash 只能选择上、下、左、右四个方向之一,走到与当前格子恰好共享一条边的格子。因此,一条路径可以由仅包含四种字符 U、D、L、R 的字符串唯一表示,它们分别表示上、下、左、右。
简单路径指没有任何格子(包括起点和终点)被访问超过一次的路径。
Bash 想找到一条从格子 $(r_B,c_B)$ 到格子 $(r_G,c_G)$ 的简单路径,经过格子 $(r_C,c_C)$,但不经过格子 $(r_U,c_U)$。Bash 希望尽可能少走几步。请帮助他!
输入格式
输入包含多个测试用例。每个测试用例由六行描述:
- 第一行恰好包含两个整数 $N$ 和 $M$,用一个空格分隔。$1\le M,N\le100$。
- 第二行恰好包含两个整数 $r_B$ 和 $c_B$,用一个空格分隔。
- 第三行恰好包含两个整数 $r_C$ 和 $c_C$,用一个空格分隔。
- 第四行恰好包含两个整数 $r_G$ 和 $c_G$,用一个空格分隔。
- 第五行恰好包含两个整数 $r_U$ 和 $c_U$,用一个空格分隔。
- 第六行为空行。
- $1\le r_B,r_C,r_G,r_U\le N$,$1\le c_B,c_C,c_G,c_U\le M$。四个格子 $(r_B,c_B)$、$(r_C,c_C)$、$(r_G,c_G)$、$(r_U,c_U)$ 两两不同。
输入以包含两个零的单独一行结束。
所有测试用例的 $M\cdot N$ 之和不超过 $10^5$。
输出格式
对于每个测试用例,如果不存在满足所有给定限制的路径,输出恰好一行 NO。否则,输出两行:
- 第一行包含单词
YES。 - 第二行包含表示 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