#include<bits/stdc++.h>
using namespace std;
bool v[555][555]={false};
int s[555][555];
int n,m,a,b;
int x,y;
struct node{
int x,y,h;
};
queue<node> q;
int main(){
cin>>n>>m>>a>>b;
for(int i=1;i<=a;i++){
cin>>x>>y;
q.push({x,y,0});
v[x][y]=1;
}
while(!q.empty()){
node n=q.front();
int h=n.h;
q.pop();
for(int i=0;i<4;i++){
int ax=n.x+dx[i];
int ay=n.y+dy[i];
if(ax>=1 && ax<=n && ay>=1 && ay<=m && !v[ax][ay]){
v[ax][ay]=1;
s[ax][ay]=h+1;
q.push({ax,ay,h+1});
}
}
}
for(int i=1;i<=b;i++){
cin>>x>>y;
cout<<s[x][y]<<"\n";
}
}