给定一个 $n \times m$ 的网格迷宫,每个单元格 $(i, j)$ 要么是空白的,要么是障碍物。George 现在位于迷宫中,起始单元格为 $(sr, sc)$,他需要访问迷宫中所有的空白单元格,并最终到达出口单元格 $(er, ec)$。假设 George 当前位于单元格 $(i, j)$,他可以进行 4 种移动:
- 尝试向左移动(记为 “L”)。如果 $j > 1$ 且单元格 $(i, j - 1)$ 是空白的,George 将移动到 $(i, j - 1)$,否则 George 将停留在 $(i, j)$。
- 尝试向右移动(记为 “R”)。如果 $j < m$ 且单元格 $(i, j + 1)$ 是空白的,George 将移动到 $(i, j + 1)$,否则 George 将停留在 $(i, j)$。
- 尝试向上移动(记为 “U”)。如果 $i > 1$ 且单元格 $(i - 1, j)$ 是空白的,George 将移动到 $(i - 1, j)$,否则 George 将停留在 $(i, j)$。
- 尝试向下移动(记为 “D”)。如果 $i < n$ 且单元格 $(i + 1, j)$ 是空白的,George 将移动到 $(i + 1, j)$,否则 George 将停留在 $(i, j)$。
他的任务是进行一系列移动,以访问所有空白单元格并最终到达出口单元格,其中起始单元格在开始时即被视为已访问。为了增加趣味性,他希望他的移动序列是一个回文串。形式化地,设他的移动序列为 $M_1, M_2, \dots, M_k$ ($M_i \in \{L, R, U, D\}$),则对于所有整数 $i$ ($1 \le i \le k$),满足 $M_i$ 和 $M_{k-i+1}$ 相同。
请帮助他找到一个回文移动序列,以访问所有空白单元格并最终到达出口单元格。如果存在多个解,输出其中任意一个即可。如果不存在解,请报告。
输入格式
第一行包含两个整数 $n, m$ ($1 \le n, m \le 30$),表示迷宫的大小。 接下来的 $n$ 行,每行包含一个二进制字符串,表示给定的迷宫。第 $i$ 行字符串中的第 $j$ 个字符,如果为 “1” 则表示单元格 $(i, j)$ 是空白的,如果为 “0” 则表示单元格 $(i, j)$ 是障碍物。 下一行包含四个整数 $sr, sc, er, ec$ ($1 \le sr, er \le n, 1 \le sc, ec \le m$),表示起始单元格和出口单元格的位置。 保证起始单元格 $(sr, sc)$ 和出口单元格 $(er, ec)$ 均为空白。
输出格式
如果存在解,输出一行移动字符串 $S$ ($0 \le |S| \le 10^6$),否则输出一行 “-1”。 如果通过不进行任何操作即可达到目标,输出一个空字符串即可。但在这种情况下,你应该输出一个空行。 请勿在输出末尾添加多余的空格,否则将获得 “Wrong Answer” 判决。
样例
输入 1
2 2 11 11 1 1 2 2
输出 1
RDLUULDR
输入 2
2 2 10 01 1 1 2 2
输出 2
-1
说明
- 对于第一个样例,基于移动序列的路径如下:
- 尝试从 $(1, 1)$ 向右移动,因为 $j = 1 < m$ 且 $(1, 2)$ 是空白的,George 移动到 $(1, 2)$
- 尝试从 $(1, 2)$ 向下移动,因为 $i = 1 < n$ 且 $(2, 2)$ 是空白的,George 移动到 $(2, 2)$
- 尝试从 $(2, 2)$ 向左移动,因为 $j = 2 > 1$ 且 $(2, 1)$ 是空白的,George 移动到 $(2, 1)$
- 尝试从 $(2, 1)$ 向上移动,因为 $i = 2 > 1$ 且 $(1, 1)$ 是空白的,George 移动到 $(1, 1)$
- 尝试从 $(1, 1)$ 向上移动,因为 $i = 1$,George 停留在 $(1, 1)$
- 尝试从 $(1, 1)$ 向左移动,因为 $j = 1$,George 停留在 $(1, 1)$
- 尝试从 $(1, 1)$ 向下移动,因为 $i = 1 < n$ 且 $(2, 1)$ 是空白的,George 移动到 $(2, 1)$
- 尝试从 $(2, 1)$ 向右移动,因为 $j = 1 < m$ 且 $(2, 2)$ 是空白的,George 移动到 $(2, 2)$ 可以看到所有空白单元格都被访问了,且最终单元格正是出口单元格 $(2, 2)$。
- 对于第二个样例,George 从 $(1, 1)$ 永远无法到达 $(2, 2)$,因此输出 “-1”。