#include <bits/stdc++.h>
using namespace std;
#define int long long
#define mod 1000000007
#define pb push_back
#define mp make_pair
#define vi vector<int>
#define onesbits(x) __builtin_popcountll(x)
#define zerobits(x) __builtin_ctzll(x)
#define sp(x, y) fixed << setprecision(y) << x
#define w(x) int x;cin >> x;while (x--)
#define tk(x) int x;cin >> x;
#define fast ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
#ifndef ONLINE_JUDGE
#define debug(x) cerr<< #x <<" ";_print(x);cerr<<endl;
#else
#define debug(x)
#endif
template <class T> void _print(T t){cerr<<t;}
template <class T> void _print(vector < vector <T> > v){cerr<<"[\n";for(int l=0;l<v.size();l++){{for(int k=0;k<v[l].size();k++)cerr<<v[l][k]<<" ";}cerr<<"\n";}cerr<<"]";}
queue<pair<int,int>>que;
vector<vector<int>>vx;
vector<vector<int>>vy;
vector<vector<int>>dis;
int c=0,len=0;
void bfs(int i,int j,int n,int m,vector<vector<char>>& v,int l,vector<vector<bool>>& vis){
vis[i][j]=true;
if(i+1<n){
if(v[i+1][j]=='.' && vis[i+1][j]==false) {
vis[i+1][j]=true;
dis[i+1][j]=dis[i][j]+1;
vx[i+1][j]=i;
vy[i+1][j]=j;
que.push(mp(i+1,j));
}
else if(v[i+1][j]=='B'){
dis[i+1][j]=dis[i][j]+1;
vx[i+1][j]=i;
vy[i+1][j]=j;
c=1;
return;
}
}
if(j+1<m){
if(v[i][j+1]=='.' && vis[i][j+1]==false){
vis[i][j+1]=true;
dis[i][j+1]=dis[i][j]+1;
vx[i][j+1]=i;
vy[i][j+1]=j;
que.push(mp(i,j+1));
}
else if(v[i][j+1]=='B'){
dis[i][j+1]=dis[i][j]+1;
c=1;
vx[i][j+1]=i;
vy[i][j+1]=j;
return;
}
}
if(i-1>=0){
if(v[i-1][j]=='.' && vis[i-1][j]==false){
vis[i-1][j]=true;
dis[i-1][j]=dis[i][j]+1;
vx[i-1][j]=i;
vy[i-1][j]=j;
que.push(mp(i-1,j));
}
else if(v[i-1][j]=='B'){
dis[i-1][j]=dis[i][j]+1;
vx[i-1][j]=i;
vy[i-1][j]=j;
c=1;
return;
}
}
if(j-1>=0){
if(v[i][j-1]=='.' && vis[i][j-1]==false){
vis[i][j-1]=true;
dis[i][j-1]=dis[i][j]+1;
vx[i][j-1]=i;
vy[i][j-1]=j;
que.push(mp(i,j-1));
}
else if(v[i][j-1]=='B'){
dis[i][j-1]=dis[i][j]+1;
vx[i][j-1]=i;
vy[i][j-1]=j;
c=1;
return;
}
}
}
int32_t main(){
fast
#ifndef ONLINE_JUDGE
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
freopen("error.txt","w",stderr);
#endif
int n,m;
cin>>n>>m;
vector<vector<bool>>vis(n,vector<bool>(m,false));
vector<vector<char>>v(n,vector<char>(m));
dis.resize(n);
vx.resize(n);
vy.resize(n);
int x,y,x1,y1;
for(int i=0;i<n;i++){
dis[i].resize(m,0);
vx[i].resize(m,0);
vy[i].resize(m,0);
for(int j=0;j<m;j++){
cin>>v[i][j];
if(v[i][j]=='A'){
x=i;
y=j;
}
else if(v[i][j]=='B'){
x1=i;
y1=j;
}
}
}
que.push(mp(x,y));
while(!que.empty()){
x=que.front().first;
y=que.front().second;
que.pop();
debug(dis);
len++;
bfs(x,y,n,m,v,len,vis);
if(c==1){
break;
}
}
int distance=dis[x1][y1];
int z=distance;
string ans="";
while(distance--){
int px=vx[x1][y1];
int py=vy[x1][y1];
if(x1-1==px){
ans="D"+ans;
x1=x1-1;
}
else if(x1+1==px){
ans="U"+ans;
x1=x1+1;
}
else if(y1-1==py) {
ans="R"+ans;
y1=y1-1;
}
else if(y1+1==py) {
ans="L"+ans;
y1=y1+1;
}
}
if(z==0){
cout<<"NO"<<"\n";
}
else{
cout<<"YES"<<"\n"<<z<<"\n"<<ans<<"\n";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW50IGxvbmcgbG9uZwojZGVmaW5lIG1vZCAxMDAwMDAwMDA3CiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgbXAgbWFrZV9wYWlyCiNkZWZpbmUgdmkgdmVjdG9yPGludD4KI2RlZmluZSBvbmVzYml0cyh4KSBfX2J1aWx0aW5fcG9wY291bnRsbCh4KQojZGVmaW5lIHplcm9iaXRzKHgpIF9fYnVpbHRpbl9jdHpsbCh4KQojZGVmaW5lIHNwKHgsIHkpIGZpeGVkIDw8IHNldHByZWNpc2lvbih5KSA8PCB4CiNkZWZpbmUgdyh4KSAgaW50IHg7Y2luID4+IHg7d2hpbGUgKHgtLSkKI2RlZmluZSB0ayh4KSBpbnQgeDtjaW4gPj4geDsKI2RlZmluZSBmYXN0IGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpLCBjaW4udGllKG51bGxwdHIpLCBjb3V0LnRpZShudWxscHRyKTsKI2lmbmRlZiBPTkxJTkVfSlVER0UKI2RlZmluZSBkZWJ1Zyh4KSBjZXJyPDwgI3ggPDwiICI7X3ByaW50KHgpO2NlcnI8PGVuZGw7CiNlbHNlCiNkZWZpbmUgZGVidWcoeCkKI2VuZGlmCnRlbXBsYXRlIDxjbGFzcyBUPiB2b2lkIF9wcmludChUIHQpe2NlcnI8PHQ7fQp0ZW1wbGF0ZSA8Y2xhc3MgVD4gdm9pZCBfcHJpbnQodmVjdG9yIDwgdmVjdG9yIDxUPiA+IHYpe2NlcnI8PCJbXG4iO2ZvcihpbnQgbD0wO2w8di5zaXplKCk7bCsrKXt7Zm9yKGludCBrPTA7azx2W2xdLnNpemUoKTtrKyspY2Vycjw8dltsXVtrXTw8IiAiO31jZXJyPDwiXG4iO31jZXJyPDwiXSI7fQogCnF1ZXVlPHBhaXI8aW50LGludD4+cXVlOwp2ZWN0b3I8dmVjdG9yPGludD4+dng7CnZlY3Rvcjx2ZWN0b3I8aW50Pj52eTsKdmVjdG9yPHZlY3RvcjxpbnQ+PmRpczsKaW50IGM9MCxsZW49MDsKdm9pZCBiZnMoaW50IGksaW50IGosaW50IG4saW50IG0sdmVjdG9yPHZlY3RvcjxjaGFyPj4mIHYsaW50IGwsdmVjdG9yPHZlY3Rvcjxib29sPj4mIHZpcyl7CiAgICB2aXNbaV1bal09dHJ1ZTsKICAgIGlmKGkrMTxuKXsKICAgICAgICBpZih2W2krMV1bal09PScuJyAmJiB2aXNbaSsxXVtqXT09ZmFsc2UpIHsKICAgICAgICAgICAgdmlzW2krMV1bal09dHJ1ZTsKICAgICAgICAgICAgZGlzW2krMV1bal09ZGlzW2ldW2pdKzE7CiAgICAgICAgICAgIHZ4W2krMV1bal09aTsKICAgICAgICAgICAgdnlbaSsxXVtqXT1qOwogICAgICAgICAgICBxdWUucHVzaChtcChpKzEsaikpOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmKHZbaSsxXVtqXT09J0InKXsKICAgICAgICAgICAgIGRpc1tpKzFdW2pdPWRpc1tpXVtqXSsxOwogICAgICAgICAgICAgdnhbaSsxXVtqXT1pOwogICAgICAgICAgICAgdnlbaSsxXVtqXT1qOwogICAgICAgICAgICBjPTE7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CiAgICAgaWYoaisxPG0pewogICAgICAgIAogICAgICAgICBpZih2W2ldW2orMV09PScuJyAmJiB2aXNbaV1baisxXT09ZmFsc2UpewogICAgICAgICAgICAgdmlzW2ldW2orMV09dHJ1ZTsKICAgICAgICAgICAgIGRpc1tpXVtqKzFdPWRpc1tpXVtqXSsxOwogICAgICAgICAgICAgdnhbaV1baisxXT1pOwogICAgICAgICAgICAgdnlbaV1baisxXT1qOwogICAgICAgICAgICAgcXVlLnB1c2gobXAoaSxqKzEpKTsKICAgICAgICAgfQogICAgICAgICBlbHNlIGlmKHZbaV1baisxXT09J0InKXsKICAgICAgICAgICAgZGlzW2ldW2orMV09ZGlzW2ldW2pdKzE7CiAgICAgICAgICAgIGM9MTsKICAgICAgICAgICAgIHZ4W2ldW2orMV09aTsKICAgICAgICAgICAgIHZ5W2ldW2orMV09ajsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICB9CiAgICAgaWYoaS0xPj0wKXsKICAgICAgICAgIAogICAgICAgICBpZih2W2ktMV1bal09PScuJyAmJiB2aXNbaS0xXVtqXT09ZmFsc2UpewogICAgICAgICAgICAgdmlzW2ktMV1bal09dHJ1ZTsKICAgICAgICAgICAgIGRpc1tpLTFdW2pdPWRpc1tpXVtqXSsxOwogICAgICAgICAgICAgdnhbaS0xXVtqXT1pOwogICAgICAgICAgICAgdnlbaS0xXVtqXT1qOwogICAgICAgICAgICAgcXVlLnB1c2gobXAoaS0xLGopKTsKICAgICAgICAgfQogICAgICAgICBlbHNlIGlmKHZbaS0xXVtqXT09J0InKXsKICAgICAgICAgICAgIGRpc1tpLTFdW2pdPWRpc1tpXVtqXSsxOwogICAgICAgICAgICAgdnhbaS0xXVtqXT1pOwogICAgICAgICAgICAgdnlbaS0xXVtqXT1qOwogICAgICAgICAgICBjPTE7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgfQogICAgIGlmKGotMT49MCl7CiAgICAgICAgCiAgICAgICAgIGlmKHZbaV1bai0xXT09Jy4nICYmIHZpc1tpXVtqLTFdPT1mYWxzZSl7CiAgICAgICAgICAgICB2aXNbaV1bai0xXT10cnVlOwogICAgICAgICAgICAgZGlzW2ldW2otMV09ZGlzW2ldW2pdKzE7CiAgICAgICAgICAgIHZ4W2ldW2otMV09aTsKICAgICAgICAgICAgdnlbaV1bai0xXT1qOwogICAgICAgICAgICAgcXVlLnB1c2gobXAoaSxqLTEpKTsKICAgICAgICAgfQogICAgICAgICBlbHNlIGlmKHZbaV1bai0xXT09J0InKXsKICAgICAgICAgICAgIGRpc1tpXVtqLTFdPWRpc1tpXVtqXSsxOwogICAgICAgICAgICB2eFtpXVtqLTFdPWk7CiAgICAgICAgICAgIHZ5W2ldW2otMV09ajsKICAgICAgICAgICAgYz0xOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgIH0KfQppbnQzMl90IG1haW4oKXsKZmFzdAogCiAKI2lmbmRlZiBPTkxJTkVfSlVER0UKIAogCiAgICBmcmVvcGVuKCJpbnB1dC50eHQiLCJyIixzdGRpbik7CiAgICBmcmVvcGVuKCJvdXRwdXQudHh0IiwidyIsc3Rkb3V0KTsKICAgIGZyZW9wZW4oImVycm9yLnR4dCIsInciLHN0ZGVycik7CiAKIAojZW5kaWYKIAogCmludCBuLG07CmNpbj4+bj4+bTsKdmVjdG9yPHZlY3Rvcjxib29sPj52aXMobix2ZWN0b3I8Ym9vbD4obSxmYWxzZSkpOwp2ZWN0b3I8dmVjdG9yPGNoYXI+PnYobix2ZWN0b3I8Y2hhcj4obSkpOwpkaXMucmVzaXplKG4pOwp2eC5yZXNpemUobik7CnZ5LnJlc2l6ZShuKTsKaW50IHgseSx4MSx5MTsKZm9yKGludCBpPTA7aTxuO2krKyl7CiAgICBkaXNbaV0ucmVzaXplKG0sMCk7CiAgICB2eFtpXS5yZXNpemUobSwwKTsKICAgIHZ5W2ldLnJlc2l6ZShtLDApOwogICBmb3IoaW50IGo9MDtqPG07aisrKXsKICAgICAgY2luPj52W2ldW2pdOwogICAgICBpZih2W2ldW2pdPT0nQScpewogICAgICAgICAgeD1pOwogICAgICAgICAgeT1qOwogICAgICB9CiAgICAgIGVsc2UgaWYodltpXVtqXT09J0InKXsKICAgICAgICAgIHgxPWk7CiAgICAgICAgICB5MT1qOwogICAgICB9CiAgIH0KfQogCnF1ZS5wdXNoKG1wKHgseSkpOwp3aGlsZSghcXVlLmVtcHR5KCkpewogICAgeD1xdWUuZnJvbnQoKS5maXJzdDsKICAgIHk9cXVlLmZyb250KCkuc2Vjb25kOwogICAgcXVlLnBvcCgpOwogICAgZGVidWcoZGlzKTsKICAgIGxlbisrOwogICAgYmZzKHgseSxuLG0sdixsZW4sdmlzKTsKICAgIGlmKGM9PTEpewogICAgICAgIGJyZWFrOwogICAgfQp9CiAgCmludCBkaXN0YW5jZT1kaXNbeDFdW3kxXTsKaW50IHo9ZGlzdGFuY2U7CnN0cmluZyBhbnM9IiI7CndoaWxlKGRpc3RhbmNlLS0pewogICAgaW50IHB4PXZ4W3gxXVt5MV07CiAgICBpbnQgcHk9dnlbeDFdW3kxXTsKICAgIGlmKHgxLTE9PXB4KXsKICAgICAgICBhbnM9IkQiK2FuczsKICAgICAgICB4MT14MS0xOwogICAgfQogICAgZWxzZSBpZih4MSsxPT1weCl7CiAgICAgICAgIGFucz0iVSIrYW5zOwogICAgICAgICB4MT14MSsxOwogICAgfQogICAgZWxzZSBpZih5MS0xPT1weSkgewogICAgICAgIGFucz0iUiIrYW5zOwogICAgICAgIHkxPXkxLTE7CiAgICB9CiAgICBlbHNlIGlmKHkxKzE9PXB5KSB7CiAgICAgICAgYW5zPSJMIithbnM7CiAgICAgICAgeTE9eTErMTsKICAgIH0KICAgIAp9CiAKIAogCiBpZih6PT0wKXsKICAgICBjb3V0PDwiTk8iPDwiXG4iOwogfQogZWxzZXsKICAgICAgY291dDw8IllFUyI8PCJcbiI8PHo8PCJcbiI8PGFuczw8IlxuIjsKIH0KICAKcmV0dXJuIDA7Cn0=