#include <bits/stdc++.h>
using namespace std;
const int MAXN = 100;
int R, C, N, K, ans;
struct Point {
  int x, y;
} p[MAXN];
bool pd(int X1, int Y1, int X2, int Y2) {
  int sum = 0;
  for (int i = 1; i <= N; i++) {
    if (p[i].x >= X1 && p[i].x <= X2 && p[i].y >= Y1 && p[i].y <= Y2) sum++;
    if (sum == K) return true;
  }
  if (sum >= K)
    return true;
  else
    return false;
}
int get() {
  int x;
  bool f = 0;
  char c;
  while (!isdigit(c = getchar()))
    if (c == '-') f = 1;
  x = c - 48;
  while (isdigit(c = getchar())) x = x * 10 + c - 48;
  if (f)
    return -x;
  else
    return x;
}
int main() {
  R = get();
  C = get();
  N = get();
  K = get();
  for (int i = 1; i <= N; i++) p[i].x = get(), p[i].y = get();
  for (int x1 = 1; x1 <= R; x1++)
    for (int y1 = 1; y1 <= C; y1++)
      for (int x2 = x1; x2 <= R; x2++)
        for (int y2 = y1; y2 <= C; y2++)
          if (pd(x1, y1, x2, y2)) ans++;
  printf("%d\n", ans);
  return 0;
}
