#include using namespace std; using ll=long long; using pii=pair; #define all(a) a.begin(),a.end() #define pb push_back #define sz(a) ((int)a.size()) const int N=505,dx[4]={0,0,-1,1},dy[4]={-1,1,0,0}; const string mv="LRUD"; int n,m,k,l,r,dis[2][N][N],par[2][N][N]; bool vis[N][N]; string a[N]; bool valid(int i, int j){return i>=0&&i=0&&j> n >> m >> k >> l >> r; l--,r--; if((l+r)%2==0||(n+m+k)%2){ cout << "No\n"; return 0; } for(int i=0; i> a[i]; memset(dis,0x3f,sizeof dis); for(int _=0; _<2; ++_){ int x0,y0; if(_==0) x0=y0=0; else x0=n-1,y0=m-1; queue q; memset(vis,0,sizeof vis); q.push({x0,y0}),dis[_][x0][y0]=0,vis[x0][y0]=1,par[_][x0][y0]=-1; while(!q.empty()){ auto [x,y]=q.front(); q.pop(); for(int i=0; i<4; ++i){ int nx=x+dx[i],ny=y+dy[i]; if(valid(nx,ny)&&!vis[nx][ny]){ q.push({nx,ny}),dis[_][nx][ny]=dis[_][x][y]+1,par[_][nx][ny]=i,vis[nx][ny]=1; } } } } for(int i=0; i