一个机器人站在无限大的二维平面上。它被编程为执行一个长度为 $n$ 的字符串 $s_1s_2 \dots s_n$,其中 $s_i \in \{'U', 'D', 'L', 'R'\}$。机器人从 $(0, 0)$ 出发,并按照字符串中的字符所代表的指令进行移动。
更正式地说,设 $(x, y)$ 为机器人的当前坐标。从 $(0, 0)$ 开始,机器人重复以下过程 $n$ 次。在第 $i$ 次操作中:
- 如果 $s_i = 'U'$,机器人从 $(x, y)$ 移动到 $(x, y + 1)$;
- 如果 $s_i = 'D'$,机器人从 $(x, y)$ 移动到 $(x, y - 1)$;
- 如果 $s_i = 'L'$,机器人从 $(x, y)$ 移动到 $(x - 1, y)$;
- 如果 $s_i = 'R'$,机器人从 $(x, y)$ 移动到 $(x + 1, y)$。
然而,在坐标 $(m_x, m_y)$ 处埋有一颗地雷。如果机器人在移动过程中踏上 $(m_x, m_y)$,它就会被炸成碎片。可怜的机器人!
你的任务是重新排列字符串中的字符,使得机器人不会踏上 $(m_x, m_y)$。
输入格式
输入包含多组测试数据。第一行包含一个整数 $T$,表示测试数据的组数。对于每组测试数据:
第一行包含两个整数 $m_x$ 和 $m_y$ ($-10^9 \le m_x, m_y \le 10^9$),表示地雷的坐标。
第二行包含一个长度为 $n$ 的字符串 $s_1s_2 \dots s_n$ ($1 \le n \le 10^5, s_i \in \{'U', 'D', 'L', 'R'\}$),表示编程给机器人的字符串。
保证所有测试数据的 $n$ 之和不超过 $10^6$。
输出格式
对于每组测试数据,输出一行。如果存在合法的排列,输出重排后的字符串;否则,输出 "Impossible"(不含引号)。如果存在多个合法的答案,你可以输出其中任意一个。
样例
输入 1
5 1 1 RURULLD 0 5 UUU 0 3 UUU 0 2 UUU 0 0 UUU
输出 1
LDLRUUR UUU Impossible Impossible Impossible