#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> ii;
const int INF = 1e9;
const ll LINF = 1e18;
const int N = 1e3 + 5;
int dx[4] = {0, 0, -1, 1};
int dy[4] = {-1, 1, 0, 0};
char dir[4] = {'L', 'R', 'U', 'D'};
int n, m;
string s[N];
bool ok(int x, int y) {
return (0 <= x && x < n && 0 <= y && y < m && s[x][y] != '#');
}
bool vis[N][N];
int p[N][N];
void bfs(int sx, int sy) {
for (int x = 0; x < n; x++) {
for (int y = 0; y < m; y++) {
vis[x][y] = false;
p[x][y] = -1;
}
}
queue<ii> q;
vis[sx][sy] = true;
q.push({sx, sy});
while (!q.empty()) {
ii u = q.front(); q.pop();
int x = u.first, y = u.second;
for (int i = 0; i < 4; i++) {
int nx = x + dx[i], ny = y + dy[i];
if (ok(nx, ny) && !vis[nx][ny]) {
vis[nx][ny] = true;
p[nx][ny] = i;
q.push({nx, ny});
}
}
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> n >> m;
int sx = -1, sy = -1, tx = -1, ty = -1;
for (int i = 0; i < n; i++) {
cin >> s[i];
for (int j = 0; j < m; j++) {
if (s[i][j] == 'A') {sx = i, sy = j;}
if (s[i][j] == 'B') {tx = i, ty = j;}
}
}
bfs(sx, sy);
if (!vis[tx][ty]) {
cout << "NO" << '\n';
return 0;
}
cout << "YES" << '\n';
string path = "";
while (true) {
if (tx == sx && ty == sy) break;
int i = p[tx][ty];
path += dir[i];
tx -= dx[i], ty -= dy[i];
}
reverse(path.begin(), path.end());
cout << path.size() << '\n';
cout << path << '\n';
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+IAoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsgIAoKdHlwZWRlZiBsb25nIGxvbmcgbGw7ICAKdHlwZWRlZiBwYWlyPGludCwgaW50PiBpaTsgIAoKY29uc3QgaW50IElORiA9IDFlOTsgIApjb25zdCBsbCBMSU5GID0gMWUxODsgIAoKY29uc3QgaW50IE4gPSAxZTMgKyA1OyAKCmludCBkeFs0XSA9IHswLCAwLCAtMSwgMX07IAppbnQgZHlbNF0gPSB7LTEsIDEsIDAsIDB9OyAgCmNoYXIgZGlyWzRdID0geydMJywgJ1InLCAnVScsICdEJ307CgppbnQgbiwgbTsgCnN0cmluZyBzW05dOyAKCmJvb2wgb2soaW50IHgsIGludCB5KSB7CglyZXR1cm4gKDAgPD0geCAmJiB4IDwgbiAmJiAwIDw9IHkgJiYgeSA8IG0gJiYgc1t4XVt5XSAhPSAnIycpOyAKfQoKYm9vbCB2aXNbTl1bTl07ICAKaW50IHBbTl1bTl07Cgp2b2lkIGJmcyhpbnQgc3gsIGludCBzeSkgewoJZm9yIChpbnQgeCA9IDA7IHggPCBuOyB4KyspIHsKCQlmb3IgKGludCB5ID0gMDsgeSA8IG07IHkrKykgewoJCQl2aXNbeF1beV0gPSBmYWxzZTsgCgkJCXBbeF1beV0gPSAtMTsgIAoJCX0KCX0KCglxdWV1ZTxpaT4gcTsgIAoJdmlzW3N4XVtzeV0gPSB0cnVlOyAgCglxLnB1c2goe3N4LCBzeX0pOyAgCgoJd2hpbGUgKCFxLmVtcHR5KCkpIHsKCQlpaSB1ID0gcS5mcm9udCgpOyBxLnBvcCgpOyAKCQlpbnQgeCA9IHUuZmlyc3QsIHkgPSB1LnNlY29uZDsgCgoJCWZvciAoaW50IGkgPSAwOyBpIDwgNDsgaSsrKSB7CgkJCWludCBueCA9IHggKyBkeFtpXSwgbnkgPSB5ICsgZHlbaV07IAoJCQlpZiAob2sobngsIG55KSAmJiAhdmlzW254XVtueV0pIHsKCQkJCXZpc1tueF1bbnldID0gdHJ1ZTsgCgkJCQlwW254XVtueV0gPSBpOyAgCgkJCQlxLnB1c2goe254LCBueX0pOyAKCQkJfQoJCX0KCX0KfQoKaW50IG1haW4oKSB7Cglpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7IAoJY2luLnRpZShudWxscHRyKTsgCQoJY2luID4+IG4gPj4gbTsgCgoJaW50IHN4ID0gLTEsIHN5ID0gLTEsIHR4ID0gLTEsIHR5ID0gLTE7ICAgCglmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewoJCWNpbiA+PiBzW2ldOyAKCQlmb3IgKGludCBqID0gMDsgaiA8IG07IGorKykgewoJCQlpZiAoc1tpXVtqXSA9PSAnQScpIHtzeCA9IGksIHN5ID0gajt9CgkJCWlmIChzW2ldW2pdID09ICdCJykge3R4ID0gaSwgdHkgPSBqO30KCQl9Cgl9CgoJYmZzKHN4LCBzeSk7IAoKCWlmICghdmlzW3R4XVt0eV0pIHsKCQljb3V0IDw8ICJOTyIgPDwgJ1xuJzsgCgkJcmV0dXJuIDA7IAoJfQoKCWNvdXQgPDwgIllFUyIgPDwgJ1xuJzsgCgkKCXN0cmluZyBwYXRoID0gIiI7ICAgCgl3aGlsZSAodHJ1ZSkgewoJCWlmICh0eCA9PSBzeCAmJiB0eSA9PSBzeSkgYnJlYWs7ICAKCQlpbnQgaSA9IHBbdHhdW3R5XTsgIAoJCXBhdGggKz0gZGlyW2ldOyAKCQl0eCAtPSBkeFtpXSwgdHkgLT0gZHlbaV07IAoJfQoKCXJldmVyc2UocGF0aC5iZWdpbigpLCBwYXRoLmVuZCgpKTsgIAogIAoJY291dCA8PCBwYXRoLnNpemUoKSA8PCAnXG4nOyAKCWNvdXQgPDwgcGF0aCA8PCAnXG4nOyAKfQ==