#include <cstdio>
#include <iostream>
#include <fstream>
#include <deque>
#include <algorithm>
#include <utility>
#include <vector>
#include <cmath>
#include <queue>
#include <string>
using namespace std;
#define in cin
#define out cout
#define REP(i,s,e) for(int i=s; i<=e; i++)
#define isin(a,b,c) ( (a<=c)&&(c<=b) )
typedef pair<int, int> pii;
typedef vector<pii> vpii;
char maze[12][12];
int dx[] = {-1, 1, 0, 0};
int dy[] = {0, 0, -1, 1};
pii moveto[4][12][12];
int exit_x, exit_y;
char LRUD[] = "LRUD";
char trace[12] = "";
bool flag = false;
int r, c;
void foo(vpii ball, int cnt, int previous_dir)
{
int ballsize = ball.size();
if(cnt > 11 || flag) return;
if(ball.size() == 1 && ball[0].first == exit_x && ball[0].second == exit_y && flag == false)
{
flag = true;
REP(i,0,cnt-1) out << trace[i];
out << endl;
return;
}
REP(i,0,3)
{
if(previous_dir == i) continue;
int chk[12][12];
REP(ii,1,r)
{
REP(jj,1,c)
{
chk[ii][jj] = 0;
}
}
vpii mball;
REP(j,0,ball.size()-1)
{
//out << ball[j].first << " " << ball[j].second << endl;
pii _T = moveto[i][ ball[j].first ][ ball[j].second ];
//out << _T.first << " " << _T.second << endl;
if(chk[_T.first][_T.second] == 0)
{
chk[_T.first][_T.second] = 1;
mball.push_back(_T);
}
}
trace[cnt] = LRUD[i];
foo(mball, cnt+1, i);
}
}
int main()
{
//freopen("in.txt", "r+", stdin);
ios::sync_with_stdio(false);
int tc; in >> tc;
while(tc--)
{
flag = false;
in >> r >> c;
REP(i,1,r) REP(j,1,c) in >> maze[i][j];
vpii ball;
REP(i,1,r) REP(j,1,c)
{
if(maze[i][j] == 'O') {exit_x = i; exit_y = j;}
else if(maze[i][j] == '.') ball.push_back( make_pair(i,j) );
}
REP(i,0,r+1) REP(j,1,c+1)
if(i == 0 || j == 0 || i == r+1 || j == c+1 ) maze[i][j] = '#';
REP(i,1,r) REP(j,1,c)
{
if(maze[i][j] == '.')
{
REP(m,0,3)
{
int px = j + dx[m];
int py = i + dy[m];
while(maze[py][px] == '.')
{
px += dx[m];
py += dy[m];
}
if(maze[py][px] == '#')
moveto[m][i][j] = make_pair(py-dy[m], px-dx[m]);
else if(maze[py][px] == 'O')
moveto[m][i][j] = make_pair(py, px);
//out << LRUD[m] << " " << i << " " << j << " " << moveto[m][i][j].first << " " << moveto[m][i][j].second << endl;
}
}
else
{
REP(m,0,3)
{
moveto[m][i][j] = make_pair(0,0);
}
}
}
foo(ball, 1, -1);
if(!flag) out << "XHAE" << endl;
} // END OF A TESTCASE
return 0;
}
I2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnN0cmVhbT4KI2luY2x1ZGUgPGRlcXVlPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8dXRpbGl0eT4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGNtYXRoPgojaW5jbHVkZSA8cXVldWU+CiNpbmNsdWRlIDxzdHJpbmc+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIGluIGNpbgojZGVmaW5lIG91dCBjb3V0CiNkZWZpbmUgUkVQKGkscyxlKSBmb3IoaW50IGk9czsgaTw9ZTsgaSsrKQojZGVmaW5lIGlzaW4oYSxiLGMpICggKGE8PWMpJiYoYzw9YikgKQoKdHlwZWRlZiBwYWlyPGludCwgaW50PiBwaWk7CnR5cGVkZWYgdmVjdG9yPHBpaT4gdnBpaTsKCmNoYXIgbWF6ZVsxMl1bMTJdOwoKaW50IGR4W10gPSB7LTEsIDEsIDAsIDB9OwppbnQgZHlbXSA9IHswLCAwLCAtMSwgMX07CnBpaSBtb3ZldG9bNF1bMTJdWzEyXTsKaW50IGV4aXRfeCwgZXhpdF95OwoKY2hhciBMUlVEW10gPSAiTFJVRCI7CmNoYXIgdHJhY2VbMTJdID0gIiI7CmJvb2wgZmxhZyA9IGZhbHNlOwppbnQgciwgYzsKCnZvaWQgZm9vKHZwaWkgYmFsbCwgaW50IGNudCwgaW50IHByZXZpb3VzX2RpcikKewogICAgaW50IGJhbGxzaXplID0gYmFsbC5zaXplKCk7CgogICAgaWYoY250ID4gMTEgfHwgZmxhZykgcmV0dXJuOwogICAgaWYoYmFsbC5zaXplKCkgPT0gMSAmJiBiYWxsWzBdLmZpcnN0ID09IGV4aXRfeCAmJiBiYWxsWzBdLnNlY29uZCA9PSBleGl0X3kgJiYgZmxhZyA9PSBmYWxzZSkKICAgIHsKICAgICAgICBmbGFnID0gdHJ1ZTsKICAgICAgICBSRVAoaSwwLGNudC0xKSBvdXQgPDwgdHJhY2VbaV07CiAgICAgICAgb3V0IDw8IGVuZGw7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIFJFUChpLDAsMykKICAgIHsKICAgICAgICBpZihwcmV2aW91c19kaXIgPT0gaSkgY29udGludWU7CgogICAgICAgIGludCBjaGtbMTJdWzEyXTsKICAgICAgICBSRVAoaWksMSxyKQogICAgICAgIHsKICAgICAgICAgICAgUkVQKGpqLDEsYykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY2hrW2lpXVtqal0gPSAwOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHZwaWkgbWJhbGw7CiAgICAgICAgUkVQKGosMCxiYWxsLnNpemUoKS0xKQogICAgICAgIHsKICAgICAgICAgICAgLy9vdXQgPDwgYmFsbFtqXS5maXJzdCA8PCAiICIgPDwgYmFsbFtqXS5zZWNvbmQgPDwgZW5kbDsKICAgICAgICAgICAgcGlpIF9UID0gbW92ZXRvW2ldWyBiYWxsW2pdLmZpcnN0IF1bIGJhbGxbal0uc2Vjb25kIF07CiAgICAgICAgICAgIC8vb3V0IDw8IF9ULmZpcnN0IDw8ICIgIiA8PCBfVC5zZWNvbmQgPDwgZW5kbDsKICAgICAgICAgICAgaWYoY2hrW19ULmZpcnN0XVtfVC5zZWNvbmRdID09IDApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNoa1tfVC5maXJzdF1bX1Quc2Vjb25kXSA9IDE7CiAgICAgICAgICAgICAgICBtYmFsbC5wdXNoX2JhY2soX1QpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICB0cmFjZVtjbnRdID0gTFJVRFtpXTsKICAgICAgICBmb28obWJhbGwsIGNudCsxLCBpKTsKICAgIH0KfQoKaW50IG1haW4oKQp7CiAgICAvL2ZyZW9wZW4oImluLnR4dCIsICJyKyIsIHN0ZGluKTsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKCiAgICBpbnQgdGM7IGluID4+IHRjOwogICAgd2hpbGUodGMtLSkKICAgIHsKICAgICAgICBmbGFnID0gZmFsc2U7CgogICAgICAgIGluID4+IHIgPj4gYzsKICAgICAgICBSRVAoaSwxLHIpIFJFUChqLDEsYykgaW4gPj4gbWF6ZVtpXVtqXTsKCiAgICAgICAgdnBpaSBiYWxsOwogICAgICAgIFJFUChpLDEscikgUkVQKGosMSxjKQogICAgICAgIHsKICAgICAgICAgICAgaWYobWF6ZVtpXVtqXSA9PSAnTycpIHtleGl0X3ggPSBpOyBleGl0X3kgPSBqO30KICAgICAgICAgICAgZWxzZSBpZihtYXplW2ldW2pdID09ICcuJykgYmFsbC5wdXNoX2JhY2soIG1ha2VfcGFpcihpLGopICk7CiAgICAgICAgfQoKICAgICAgICBSRVAoaSwwLHIrMSkgUkVQKGosMSxjKzEpCiAgICAgICAgICAgIGlmKGkgPT0gMCB8fCBqID09IDAgfHwgaSA9PSByKzEgfHwgaiA9PSBjKzEgKSBtYXplW2ldW2pdID0gJyMnOwoKICAgICAgICBSRVAoaSwxLHIpIFJFUChqLDEsYykKICAgICAgICB7CiAgICAgICAgICAgIGlmKG1hemVbaV1bal0gPT0gJy4nKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSRVAobSwwLDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaW50IHB4ID0gaiArIGR4W21dOwogICAgICAgICAgICAgICAgICAgIGludCBweSA9IGkgKyBkeVttXTsKCiAgICAgICAgICAgICAgICAgICAgd2hpbGUobWF6ZVtweV1bcHhdID09ICcuJykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIHB4ICs9IGR4W21dOwogICAgICAgICAgICAgICAgICAgICAgICBweSArPSBkeVttXTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGlmKG1hemVbcHldW3B4XSA9PSAnIycpCiAgICAgICAgICAgICAgICAgICAgICAgIG1vdmV0b1ttXVtpXVtqXSA9IG1ha2VfcGFpcihweS1keVttXSwgcHgtZHhbbV0pOwogICAgICAgICAgICAgICAgICAgIGVsc2UgaWYobWF6ZVtweV1bcHhdID09ICdPJykKICAgICAgICAgICAgICAgICAgICAgICAgbW92ZXRvW21dW2ldW2pdID0gbWFrZV9wYWlyKHB5LCBweCk7CgogICAgICAgICAgICAgICAgICAgIC8vb3V0IDw8IExSVURbbV0gPDwgIiAiIDw8IGkgPDwgIiAiIDw8IGogPDwgIiAiIDw8IG1vdmV0b1ttXVtpXVtqXS5maXJzdCA8PCAiICIgPDwgbW92ZXRvW21dW2ldW2pdLnNlY29uZCA8PCBlbmRsOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUkVQKG0sMCwzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIG1vdmV0b1ttXVtpXVtqXSA9IG1ha2VfcGFpcigwLDApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBmb28oYmFsbCwgMSwgLTEpOwoKICAgICAgICBpZighZmxhZykgb3V0IDw8ICJYSEFFIiA8PCBlbmRsOwogICAgfSAvLyBFTkQgT0YgQSBURVNUQ0FTRQoKICAgIHJldHVybiAwOwp9Cg==