你正在控制一艘气垫船。气垫船位于一个秘密基地中。该基地被划分为 $n \times m$ 个扇区。行从上到下编号为 $1$ 到 $n$,列从左到右编号为 $1$ 到 $m$。每个扇区要么是空的,要么被墙壁占据。此外,在某些空扇区中还有 $k$ 个换向器。没有任何扇区包含超过一个换向器。每个换向器都可以处于启用或禁用状态。
你需要为气垫船制定一个包含 12 条指令的列表,它将按照相同的顺序依次执行这些指令。每条指令必须是以下类型之一:
- U — 向上移动:从扇区 $[r, c]$ 移动到扇区 $[r - 1, c]$;
- D — 向下移动:从扇区 $[r, c]$ 移动到扇区 $[r + 1, c]$;
- L — 向左移动:从扇区 $[r, c]$ 移动到扇区 $[r, c - 1]$;
- R — 向右移动:从扇区 $[r, c]$ 移动到扇区 $[r, c + 1]$;
- S — 切换换向器状态:如果换向器已禁用则启用,否则禁用;
- F — 调用函数:依次执行预定义的 8 条指令列表;
- N — 无操作:什么都不做。
如果移动操作会导致撞墙或超出秘密基地边界,气垫船将忽略该操作。 如果当前单元格中没有换向器,气垫船将忽略切换操作。
每个函数调用都使用相同的指令列表,该列表也由你编写。此列表必须恰好包含上述类型的 8 条指令。这意味着函数可以递归调用。
你的目标是在某个时刻使所有 $k$ 个换向器都处于启用状态。也就是说,你的任务是编写一个 12 条指令的列表和一个 8 条指令的函数,使得气垫船在某一时刻同时启用所有 $k$ 个换向器。在此之后发生什么并不重要:气垫船可以无限移动,甚至可以禁用某些换向器。
输入格式
第一行包含三个整数 $n, m$ 和 $k$ —— 分别表示秘密基地的行数、列数和换向器数量 ($2 \le n, m \le 20, 1 \le k \le 5$)。 第二行包含两个整数 $x_s$ 和 $y_s$ —— 气垫船的初始行号和列号 ($1 \le x_s \le n, 1 \le y_s \le m$)。 接下来的 $n$ 行,每行表示秘密基地的一行,包含 $m$ 个字符。每个字符要么是 ‘.’(空扇区)、‘X’(墙壁扇区)、‘E’(已启用的换向器)或 ‘D’(已禁用的换向器)。 保证气垫船起始于没有墙壁的扇区,并且对于给定的输入至少存在一个有效的答案。
输出格式
第一行输出应包含恰好 8 个字符,表示函数的指令。 第二行输出应包含恰好 12 个字符,表示主指令列表。 这些字符中的每一个都应该是 ‘U’、‘D’、‘L’、‘R’、‘S’、‘F’ 或 ‘N’。 如果存在多个可能的答案,输出其中任意一个即可。
样例
输入 1
5 6 3 1 3 .E.... XXXXX. ...D.. .XXXXX .....D
输出 1
UUUDDRSF RRRDDLLSLLLF
输入 2
3 4 2 3 3 E... .XX. .X.E
输出 2
NNNNNNNN RSUULLLSNNNN
输入 3
4 6 3 4 6 DX.... .X.XX. .D..X. ....XD
输出 3
NSLUUUSN NFLLNLDDNLFS
说明
在第二个样例中,不需要使用函数。在这种情况下,函数可以由任意指令组成。 在第三个样例中,执行完第二次函数调用后,所有换向器均已启用。这就是为什么尽管最后一条指令禁用了其中一个换向器,输出仍然是正确的。