#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> P;
typedef long long ll;
typedef vector<int> vi;
typedef vector<ll> vll;
#define pb push_back
#define mp make_pair
#define eps 1e-9
#define INF 2000000000
#define sz(x) ((int)(x).size())
#define fi first
#define sec second
#define all(x) (x).begin(),(x).end()
#define rep(i,n) for(int (i)=0;(i)<(int)(n);(i)++)
#define repn(i,a,n) for(int (i)=(a);(i)<(int)(n);(i)++)
#define EQ(a,b) (abs((a)-(b))<eps)
int H,W,len,p;
int f[4010][4010];
int tmp[4010][4010];
int L[4010][4010],R[4010][4010];
const int SIZE = 4200;
struct BIT{
	int bit[SIZE+10];
	void clear(){
		for(int i=0;i<=SIZE;i++)bit[i]=0;
	}
	void add(int i,int x){
		while(i<=SIZE){
			bit[i]+=x;
			i+=i&-i;
		}
	}
	int sum(int i){
		int res = 0;
		while(i>0){
			res+=bit[i];
			i-=i&-i; 
		}
		return res;
	}
	int sum(int l,int r){
		if(l>r)return 0;
		return sum(r)-sum(l-1);
	}
};
BIT bitL,bitR;
ll ans = 0ll;
void culc(int sx,int sy){
	bitL.clear();
	bitR.clear();
	vector<P> vec;
	for(int i=sx,j=sy;i<=H&&j<=W;i++,j++){
		vec.pb(P(L[i][j],j));
		vec.pb(P(R[i][j],j+W));
	}
	sort(all(vec),greater<P>());
	for(int i=0;i<vec.size();i++){
		int y = vec[i].sec;
		int v = vec[i].fi;
		if(y<=W){
			ans += bitR.sum(y+len-1,y+v-1);
			bitL.add(y,1);
		}else{
			y-=W;
			ans += bitL.sum(y-v+1,y-len+1);
			bitR.add(y,1);
		}
	}
	return;
}
int main(){
	scanf("%d %d %d %d",&H,&W,&len,&p);
	for(int i=0;i<p;i++){
		int a,b;
		scanf("%d %d",&a,&b);
		f[a][b]=1;
	}
	for(int i=W;i>=1;i--){
		for(int j=1;j<=H;j++){
			L[j][i]=L[j][i+1]+1;
			if(f[j][i])L[j][i]=0;
		}
	}
	for(int i=H;i>=1;i--){
		for(int j=1;j<=W;j++){
			tmp[i][j]=tmp[i+1][j]+1;
			if(f[i][j])tmp[i][j]=0;
			L[i][j]=min(L[i][j],tmp[i][j]);
		}
	}
	for(int i=1;i<=W;i++){
		for(int j=1;j<=H;j++){
			R[j][i]=R[j][i-1]+1;
			if(f[j][i])R[j][i]=0;
		}
	}
	for(int i=1;i<=H;i++){
		for(int j=1;j<=W;j++){
			tmp[i][j]=tmp[i-1][j]+1;
			if(f[i][j])tmp[i][j]=0;
			R[i][j]=min(R[i][j],tmp[i][j]);
		}
	}
	/*for(int i=1;i<=H;i++){
		for(int j=1;j<=W;j++){
			printf("%d ",L[i][j]);
		}
		printf("\n");
	}
	printf("\n");
	for(int i=1;i<=H;i++){
		for(int j=1;j<=W;j++){
			printf("%d ",R[i][j]);
		}
		printf("\n");
	}*/
	for(int s=2;s<=H;s++)culc(s,1);
	for(int s=1;s<=W;s++)culc(1,s);
	printf("%lld\n",ans);
	return 0;
}