Václav 有一个美丽的花园,里面有 $M$ 朵花种在一条直线上。在这条直线上,Václav 还放置了 $N$ 个喷水器来浇灌他的花。
喷水器的位置由数字 $s_1, \dots, s_N$ 给出。花的位置由数字 $f_1, \dots, f_M$ 给出。两者均按非递减顺序提供,即: $s_1 \le s_2 \le \dots \le s_N$ $f_1 \le f_2 \le \dots \le f_M$
Václav 即将前往参加 CEOI。他想确保在他离开期间所有的花都能得到适当的浇灌。为此,他将每个喷水器单独转向左侧或右侧,并设置它们的喷水功率——所有喷水器共用同一根水管,因此喷水距离相同。
如果喷水功率为 $K$,且第 $i$ 个喷水器转向左侧,它将浇灌所有位置在 $s_i - K$ 和 $s_i$ 之间的花(包含边界)。同样,如果第 $j$ 个喷水器转向右侧,它将浇灌所有位置在 $s_j$ 和 $s_j + K$ 之间的花(包含边界)。单个喷水器可以浇灌多朵花,单朵花也可以被多个喷水器浇灌。
你的任务是判断是否有可能浇灌所有的花。如果可以,你应该找到最小的充足喷水功率,以及相应的喷水器配置。如果存在多种具有最小喷水功率的有效配置,输出其中任意一种即可。
输入格式
第一行包含两个整数 $N$ 和 $M$,用空格分隔。第二行包含 $N$ 个用空格分隔的整数 $s_1, \dots, s_N$,表示喷水器的位置。第三行包含 $M$ 个用空格分隔的整数 $f_1, \dots, f_M$,表示花的位置。
输出格式
如果无法浇灌所有的花,打印数字 $-1$。
如果可以,输出应包含两行。第一行输出数字 $K$,即浇灌所有花所需的最小喷水功率。第二行打印一个长度为 $N$ 的字符串 $c$,如果第 $i$ 个喷水器应转向左侧,则 $c_i$ 为 L,否则为 R。
样例
样例输入 1
3 3 10 10 10 5 11 16
样例输出 1
6 LLR
说明 1
给出的解是有效的——每朵花至少被一个喷水器浇灌。小于 6 的喷水功率是不可能的,因为位置在 16 的花距离最近的喷水器有 6 个单位远。
样例输入 2
1 2 1000 1 2000
样例输出 2
-1
说明 2
无论唯一的一个喷水器朝向如何,一次最多只能浇灌一朵花。
数据范围
- $1 \le N, M \le 10^5$
- $0 \le s_i \le 10^9$(对于每个 $1 \le i \le N$)
- $0 \le f_i \le 10^9$(对于每个 $1 \le i \le M$)
- $s_i \le s_j$(对于所有 $i \le j$)
- $f_i \le f_j$(对于所有 $i \le j$)
子任务
- (3 分) $N = 1$
- (6 分) $N = 3x$(对于某个整数 $x$),且对于每个 $0 \le i \le x - 1$,满足 $s_{3i+1} = s_{3i+2} = s_{3i+3}$(即喷水器总是以三个为一组放置)
- (17 分) $N \le 10, M \le 1000$
- (27 分) $K \le 8$(即在所有测试用例中,都存在一种喷水器配置,使得不超过 8 的喷水功率足以浇灌所有的花)
- (47 分) 无附加限制