#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=1e6+10;
int n,m,q,k,vis[25][N],x=1,y=1;
char mp[510][510];
int lowbit(int p){
return p&(-p);
}
void add(int num,int p,int z){
while(p<=q){
vis[num][p]+=z;
p+=lowbit(p);
}
return;
}
int query(int num,int p){
int res=0;
while(p>0){
res+=vis[num][p];
p-=lowbit(p);
}
return res;
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin>>n>>m>>q>>k;
for(int i=1;i<=n;++i){
for(int j=1;j<=m;++j){
cin>>mp[i][j];
}
}
char c; int a,b,t;
for(int i=1;i<=q;++i){
cin>>c>>a>>b;
t=query(i%k,i/k+1);
if(c=='U'){
if(t%2==1) x=min(n,x+a);
else x=max(1ll,x-a);
}
else if(c=='D'){
if(t%2==1) x=max(1ll,x-a);
else x=min(n,x+a);
}
else if(c=='R'){
if(t%2==1) y=max(1ll,y-a);
else y=min(m,y+a);
}
else if(c=='L'){
if(t%2==1) y=min(m,y+a);
else y=max(1ll,y-a);
}
if(mp[x][y]=='X'){
add(i%k,i/k+2,1);
add(i%k,i/k+b+2,-1);
}
}
cout<<x<<" "<<y<<endl;
return 0;
}