#include<bits/stdc++.h>
using namespace std;
#define int long long
typedef pair<int,int> P;
int n,h,w,f=0;
string st[20];
map<P,int> m;
map<int,P> r;
char c[5]="RDLU";
int ai[]={0,1,0,-1};
int aj[]={1,0,-1,0};
bool in(int i,int j){
  return (0<=i&&i<h&&0<=j&&j<w);
}
void dfs(int b,int p,int d,string s){
  //cout<<b<<p<<"/"<<d<<s<<endl;
  if(f) return;
  if(b==(1<<n)-1){
    f=1;
    cout<<s<<endl;
    return;
  }
  for(int k=0;k<4;k++){
    //cout<<k<<endl;
    if((d+2)%4==k) continue;
    int i=r[p].first,j=r[p].second;
    while(1){
      while(in(i,j)&&st[i][j]=='.') i+=ai[k],j+=aj[k];//,cout<<i<<j<<endl;
      if(!in(i,j)) break;
      if((b>>m[P(i,j)])&1){
	i+=ai[k],j+=aj[k];
	continue;
      }
      break;
    }
    if(!in(i,j)) continue;
    if(m.find(P(i,j))==m.end()) continue;
    int x=m[P(i,j)];
    dfs(b+(1<<x),x,k,s+c[k]);
  }
}
signed main(){
  int d;
  cin>>h>>w;
  for(int i=0;i<h;i++) cin>>st[i];
  n=1;
  for(int i=0;i<h;i++){
    for(int j=0;j<w;j++){
      if(st[i][j]=='o'){
	m[P(i,j)]=n;
	r[n]=P(i,j);
	n++;
      }
      for(int k=0;k<4;k++){
	if(st[i][j]==c[k]){
	  m[P(i,j)]=0;
	  r[0]=P(i,j);
	  d=k;
	  st[i][j]='.';
	}
      }
    }
  }
  dfs(1,0,d,"");
  return 0;
}