#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<queue>
#define MAX 1010
using namespace std;
int n,m,k,d;
int v[4][2]={
{-1,0},{1,0},{0,-1},{0,1}};
int vis[MAX][MAX];
long long order[MAX][MAX];
struct Node{
int x,y;
long long dis;
Node(){}
Node(int xx,int yy,int c){
x=xx,y=yy;
dis=c;
}
};
queue<Node>Q;
void init(){
cin>>n>>m>>k>>d;
int a,b,c;
for(int i=0;i<m;i++){
cin>>a>>b;
Q.push(Node(a,b,0));
}
for(int i=0;i<k;i