forsizy,forsizx,movnum,chaind=map(int,input().split())
forlst,movlst=[],[]
for i in range(forsizy):
forlst.append(input())
for i in range(movnum):
temlst=input().split()
movlst.append([temlst[0],int(temlst[1]),int(temlst[2]),1])
poslst=[0,0]
def mov(i):
global poslst
stp=movlst[i][1]*movlst[i][3]
drn=movlst[i][0]
if drn=="U":poslst[0]-=stp
elif drn=="D":poslst[0]+=stp
elif drn=="L":poslst[1]-=stp
elif drn=="R":poslst[1]+=stp
if poslst[0]<0:poslst[0]=0
elif poslst[0]>=forsizx:poslst[0]=forsizx-1
if poslst[1]<0:poslst[1]=0
elif poslst[1]>=forsizy:poslst[1]=forsizy-1
def chg(i):
if forlst[poslst[0]][poslst[1]]=="X" and movlst[i][2]!=0:
for j in range(i+chaind,i+(movlst[i][2]+1)*chaind,chaind):
movlst[j][3]*=-1
for i in range(movnum):
mov(i)
chg(i)
print(poslst[0]+1,poslst[1]+1)
求助各位大佬这个解答在算法上有什么可以优化的地方?