#include <bits/stdc++.h>
using namespace std;
const double PI =
    3.141592653589793238462643383279502884197169399375105820974944592307816406286;
int r, c, n, k, A[11][11], rsq[11][11], x, y;
void pre_rsq() {
  rsq[0][0] = A[0][0];
  for (int i = 0; i < r; i++)
    for (int j = 0; j < c; j++) {
      rsq[i][j] = A[i][j];
      if (i > 0) rsq[i][j] += rsq[i - 1][j];
      if (j > 0) rsq[i][j] += rsq[i][j - 1];
      if (i > 0 && j > 0) rsq[i][j] -= rsq[i - 1][j - 1];
    }
}
int query(int x1, int y1, int x2, int y2) {
  if (x1 == 0 && y1 == 0) return rsq[x2][y2];
  if (x1 == 0) return rsq[x2][y2] - rsq[x2][y1 - 1];
  if (y1 == 0) return rsq[x2][y2] - rsq[x1 - 1][y2];
  return rsq[x2][y2] - rsq[x1 - 1][y2] - rsq[x2][y1 - 1] + rsq[x1 - 1][y1 - 1];
}
int visited[11][11];
int solve(int a, int b, int i, int j) {
  int sol = 0;
  if (i >= r || j >= c || visited[i][j]) return 0;
  visited[i][j] = 1;
  if (query(a, b, i, j) >= k) sol++;
  sol += solve(a, b, i + 1, j);
  sol += solve(a, b, i, j + 1);
  return sol;
}
int main() {
  cin >> r >> c >> n >> k;
  memset(A, 0, sizeof(A));
  for (int i = 0; i < n; i++) {
    cin >> x >> y;
    A[x - 1][y - 1] = 1;
  }
  pre_rsq();
  int ret = 0;
  for (int i = 0; i < r; i++)
    for (int j = 0; j < c; j++) {
      memset(visited, 0, sizeof(visited));
      ret += solve(i, j, i, j);
    }
  cout << ret << endl;
}
