#include using namespace std; typedef signed long long ll; #define _P(...) (void)printf(__VA_ARGS__) #define FOR(x,to) for(x=0;x<(to);x++) #define FORR(x,arr) for(auto& x:arr) #define FORR2(x,y,arr) for(auto& [x,y]:arr) #define ALL(a) (a.begin()),(a.end()) #define ZERO(a) memset(a,0,sizeof(a)) #define MINUS(a) memset(a,0xff,sizeof(a)) template bool chmax(T &a, const T &b) { if(a bool chmin(T &a, const T &b) { if(a>b){a=b;return 1;}return 0;} //------------------------------------------------------- int H,W,K,L,R; string S[555]; ll D[2][555][555]; char from[2][555][555]; int fromdy[2][555][555]; int fromdx[2][555][555]; string A[2]={"RLDU","LRUD"}; void solve() { int i,j,k,l,r,x,y; string s; cin>>H>>W>>K>>L>>R; FOR(y,H) cin>>S[y]; if((R-L)%2==0) { cout<<"No"< Q; Q.push(0); Q.push(H*W+(H-1)*W+W-1); while(Q.size()) { int id=Q.front()/H/W; int cy=Q.front()/W%H; int cx=Q.front()%W; Q.pop(); FOR(i,4) { int dy[]={0,0,1,-1}; int dx[]={1,-1,0,0}; int ty=cy+dy[i]; int tx=cx+dx[i]; if(ty<0||ty>=H||tx<0||tx>=W||S[ty][tx]=='#') continue; if(D[id][ty][tx]==1LL<<60) { D[id][ty][tx]=D[id][cy][cx]+1; from[id][ty][tx]=A[id][i]; fromdy[id][ty][tx]=-dy[i]; fromdx[id][ty][tx]=-dx[i]; Q.push(id*H*W+ty*W+tx); } } } FOR(y,H) FOR(x,W) { if(D[0][y][x]>L||(D[0][y][x]%2==L%2)) continue; if(D[1][y][x]>K-R||(D[1][y][x]%2!=(K-R)%2)) continue; int t=0; if(y&&y+1