#include<bits/stdc++.h>
using namespace std;
const int N=2*1e5+5;
int n,m,a,b,u,d,l,r,k1,k2,k3,k4,scr[5];
struct node{
int x,y;
}a1[N],a2[N],a3[N],a4[N];
bool cmp1(node a,node b){return a.x<b.x;}
bool cmp2(node a,node b){return a.y<b.y;}
bool cunzai(int x,int y)
{
return x>=u&&x<=d&&y>=l&&y<=r;
}
signed main()
{
cin.tie(0)->sync_with_stdio(0);
int t;cin>>t;
while(t--)
{
cin>>d>>r>>n>>m;
scr[0]=scr[1]=0;
k1=k3=1;k2=k4=n;
u=l=1;
for(int i=1;i<=n;i++)
{
cin>>a1[i].x>>a1[i].y;
a2[i]=a1[i];
}
sort(a1+1,a1+n+1,cmp1);
sort(a2+1,a2+n+1,cmp2);
for(int i=1;i<=m;i++)
{
char c;int k,cnt=0;
cin>>c>>k;
if(c=='U')
{
for(;a1[k1].x<u+k;k1++)
if(cunzai(a1[k1].x,a1[k1].y))
cnt++;
u+=k;
}
if(c=='D')
{
for(;a1[k2].x>d-k;k2--)
if(cunzai(a1[k2].x,a1[k2].y))
cnt++;
d-=k;
}
if(c=='L')
{
for(;a2[k3].y<l+k;k3++)
if(cunzai(a2[k3].x,a2[k3].y))
cnt++;
l+=k;
}
if(c=='R')
{
for(;a2[k4].y>r-k;k4--)
if(cunzai(a2[k4].x,a2[k4].y))
cnt++;
r-=k;
}
scr[i%2]+=cnt;
}
cout<<scr[1]<<" "<<scr[0]<<'\n';
}
return 0;
}