#include <bits/stdc++.h>
using namespace std;
void solve() {
int mx,my;
cin>>mx>>my;
string str;
cin>>str;
map<char,int> mp;
for(int i=0; i<(int)str.size(); i++) {
mp[str[i]]++;//统计各个方向移动的指令数目
}
int end_x=mp['R']-mp['L'];//不要取绝对值就是算最后的坐标
int end_y=mp['U']-mp['D'];
if((mx==0&&my==0)||(end_x==mx&&end_y==my)) {
cout<<"Impossible"<<endl;
return;
}
//0 2 uuu
//endx=0,endy=3
int posx=0,posy=0;
if(my==0) { //地雷在x轴上
if(end_y==0) { //最后落在x轴上
if(mx>0) { //如果
if(end_x>mx) {
cout<<"Impossible"<<endl;
return;
}
for(int i=0; i<mp['U']; i++) {
cout<<'U';
}
for(int i=0; i<mp['D']; i++) {
cout<<'D';
}
for(int i=0; i<mp['L']; i++) {
cout<<'L';
}
for(int i=0; i<mp['R']; i++) {
cout<<'R';
}cout<<endl;
return;
} else {
if(end_x<mx) {
cout<<"Impossible"<<endl;
return;
}
for(int i=0; i<mp['U']; i++) {
cout<<'U';
}
for(int i=0; i<mp['D']; i++) {
cout<<'D';
}
for(int i=0; i<mp['R']; i++) {
cout<<'R';
}
for(int i=0; i<mp['L']; i++) {
cout<<'L';}
cout<<endl;
return;
}
} else {
for(int i=0; i<mp['U']; i++) {
cout<<'U';
}
for(int i=0; i<mp['D']; i++) {
cout<<'D';
}
for(int i=0; i<mp['L']; i++) {
cout<<'L';
}
for(int i=0; i<mp['R']; i++) {
cout<<'R';
}cout<<endl;
return;
}
} else if(mx==0) { //如果地雷在y轴上
if(end_x==0) { //最后落在y轴上
if(my>0) { //如果
if(end_y>my) {
cout<<"Impossible"<<endl;
return;
}
for(int i=0; i<mp['L']; i++) {
cout<<'L';
}
for(int i=0; i<mp['R']; i++) {
cout<<'R';
}
for(int i=0; i<mp['D']; i++) {
cout<<'D';
}
for(int i=0; i<mp['U']; i++) {
cout<<'U';
}
cout<<endl
return;
} else {
if(end_y<my) {
cout<<"Impossible"<<endl;
return;
}
for(int i=0; i<mp['R']; i++) {
cout<<'R';
}
for(int i=0; i<mp['L']; i++) {
cout<<'L';
}
for(int i=0; i<mp['U']; i++) {
cout<<'U';
}
for(int i=0; i<mp['D']; i++) {
cout<<'D';
}
cout<<endl;
return;
}
} else {
for(int i=0; i<mp['L']; i++) {
cout<<'L';
}
for(int i=0; i<mp['R']; i++) {
cout<<'R';
}
for(int i=0; i<mp['U']; i++) {
cout<<'U';
}
for(int i=0; i<mp['D']; i++) {
cout<<'D';
}
cout<<endl;
return;
}
}else if(end_x!=mx&&end_y!=my) { //如果两个最终的结果都不跟坐标相同
for(int i=0; i<mp['L']; i++) {
cout<<'L';
}
for(int i=0; i<mp['R']; i++) {
cout<<'R';
}
for(int i=0; i<mp['U']; i++) {
cout<<'U';
}
for(int i=0; i<mp['D']; i++) {
cout<<'D';
}
cout<<endl;
return;
} else if(end_x!=mx&&end_y==my) {//若x不相同,但是y的坐标相同的话__地雷的点不在坐标轴上,但是在
for(int i=0; i<mp['L']; i++) {
cout<<'L';
}
for(int i=0; i<mp['R']; i++) {
cout<<'R';
}
for(int i=0; i<mp['U']; i++) {
cout<<'U';
}
for(int i=0; i<mp['D']; i++) {
cout<<'D';
}
cout<<endl;
return;
} else if(end_y!=my&&end_x==mx) { //如果y最后不相同但是x相同,
for(int i=0; i<mp['U']; i++) {
cout<<'U';
}
for(int i=0; i<mp['D']; i++) {
cout<<'D';
}
for(int i=0; i<mp['L']; i++) {
cout<<'L';
}
for(int i=0; i<mp['R']; i++) {
cout<<'R';
}
cout<<endl;
return;
}
}
int main() {
int t;
cin>>t;
while(t--) {
solve();
}
}