寻找路径
题号:NC25659
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 128 M,其他语言256 M
Special Judge, 64bit IO Format: %lld

题目描述

有一个用于训练机器人的方格迷宫,左下角为入口,位置记为 (0,0),右上角的点是出口,位置记为 (m,n),相邻两个交叉路口之间的距离为 1 个单位长度。 
一个人工智能机器人从迷宫的入口开始,按照提前计算好的指令串行走,如果读取到当前为 "U" 指令则向上走 1 个单位长度,是 "R" 指令则向右走 1 个单位长度。 
在以某种顺序执行完n个 "U" 指令, m 个 "R" 指令后,机器人来到了迷宫出口。  
现在轮到人工智能 SK 出发了,他也来到了入口,作为一个机器人,他也只能按照读取指令串的方式行走。 
然而人工智能 SK 并不想和上一个机器人走出重复的路径,亦即不能经过相同的边(但是可以有公共点),你能帮他指定一个可行的指令串,从而快速走到迷宫出口吗?  

输入描述:

第一行是一个正整数 T(T<=25),表示测试数据的组数。
对于每组测试数据,
第一行是两个正整数 n 和 m ,保证 n, m 均不大于 50000。
第二行一个长度为n+m的字符串,表示第一个机器人所走的指令,保证字符串中恰好出现 n 个 "U" 以及 m 个"R"。
保证所有测试数据输入字符串的总长度不超过150000。

输出描述:

对于每组测试数据,输出一行只包含大写字母"U" 和"R"的字符串,表示可行的指令串。
要求在满足成功走到迷宫出口的前提下,还要保证和所给机器人的路径没有相同的边。
输出任意一个合法解即可,如果不存在合法路径,则输出一行"impossible"(不含引号)。
示例1

输入

复制
3
1 2
URR
2 2
URUR
4 5
RUURRUURR

输出

复制
RRU
RURU
URRRRUURU

说明

第三组样例输入输出如图所示,黑色路径代表输入,红色路径表示输出的合法解:

方案不唯一,比如另一个解"URRRRRUUU"显然也是合法的。