#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn=5e2+5,maxm=1e6+5,INF=0x3f3f3f3f;
using namespace std;
int n,m,a,b;
struct Node{
int x,y;
}q[maxn];
int qr=1,ql=1;
bool vis[maxn][maxn];
int f[maxn][maxn];
int dx[4]={0,0,1,-1};
int dy[4]={1,-1,0,0};
void bfs()
{
while(ql<qr)
{
int xx,yy;
xx=q[ql].x;
yy=q[ql].y;
ql++;
for(int i=0;i<4;i++)
{
int xa=xx+dx[i],ya=yy+dy[i];
if(xa>0&&xa<=n&&ya>0&&ya<=m&&!vis[xa][ya])
{
vis[xa][ya]=1;
q[qr].x=xa;
q[qr].y=ya;
qr++;
f[xa][ya]=f[xx][yy]+1;
}
}
}
}
int main()
{
cin>>n>>m>>a>>b;
memset(f,0,sizeof(f));
memset(vis,0,sizeof(vis));
for(int i=1,x,y;i<=a;i++)
{
cin>>x>>y;
q[qr].x=x;
q[qr].y=y;
qr++;
vis[x][y]=1;
}
bfs();
for(int i=1,x,y;i<=b;i++)
{
cin>>x>>y;
cout<<f[x][y]<<endl;
}
return 0;
}
//除了第一个点AC其他全RE了