from copy import deepcopy N,M=map(int,input().split()) A=[] for i in range(N): A.append(list(input())) bomb=[] maxi=0 num=0 for i in range(M): C,L=map(int,input().split()) bomb.append([C,[]]) if maxii+j: near=i+j x=i y=j use=[] while True: maxi=0 xp=-1 yp=-1 for i in range(N): for j in range(N): cnt=0 for k,l in bomb[num][1]: if 0<=i+kmaxi: maxi=cnt xp=i yp=j if xp==-1: break use.append((xp,yp)) for k,l in bomb[num][1]: if 0<=xp+kabs(x-use[j][0])+abs(y-use[j][1]): near=abs(x-use[j][0])+abs(y-use[j][1]) go=j for i in range(use[go][0]-x): ans.append([1,"D"]) for i in range(x-use[go][0]): ans.append([1,"U"]) for i in range(use[go][1]-y): ans.append([1,"R"]) for i in range(y-use[go][1]): ans.append([1,"L"]) x=use[go][0] y=use[go][1] ans.append([3,num+1]) used.add(go) a2=ans[:] A=deepcopy(ap) posx=0 posy=0 ans=[] for a in range(2): for b in range(2): lf=a*25 ri=25+lf up=(a^b)*25 dn=25+up use=[] x=-1 y=-1 near=998244353 for i in range(N): for j in range(N): if A[i][j]=="@": if near>abs(posx-i)+abs(posy-j): near=abs(posx-i)+abs(posy-j) x=i y=j if x==-1: print(len(a2)) for i in a2: print(*i) exit() for i in range(x-posx): ans.append([1,"D"]) for i in range(y-posy): ans.append([1,"R"]) for i in range(posx-x): ans.append([1,"U"]) for i in range(posy-y): ans.append([1,"L"]) while True: maxi=0 xp=-1 yp=-1 for i in range(up,dn): for j in range(lf,ri): cnt=0 for k,l in bomb[num][1]: if up<=i+kmaxi: maxi=cnt xp=i yp=j if xp==-1: break use.append((xp,yp)) for k,l in bomb[num][1]: if 0<=xp+kabs(x-use[j][0])+abs(y-use[j][1]): near=abs(x-use[j][0])+abs(y-use[j][1]) go=j for i in range(use[go][0]-x): ans.append([1,"D"]) for i in range(x-use[go][0]): ans.append([1,"U"]) for i in range(use[go][1]-y): ans.append([1,"R"]) for i in range(y-use[go][1]): ans.append([1,"L"]) x=use[go][0] y=use[go][1] ans.append([3,num+1]) used.add(go) posx=x posy=y print(len(ans)) for i in ans: print(*i)