#!/usr/bin/python3
import sys

w, h, d, n = [int(v) for v in sys.stdin.readline().split(' ')]
dxByDy = [-1] * (d + 1)
for dy in range(d + 1):
  for dx in range(d + 1):
    if dy * dy + dx * dx <= d * d:
      dxByDy[dy] = dx

events = {}
for i in range(n):
  x, y = [int(v) for v in sys.stdin.readline().split(' ')]
  for dy in range(-d,d+1):
    cy = y + dy
    if cy < 1 or cy > h: continue
    dx = dxByDy[abs(dy)]
    lx = max(1, x - dx)
    rx = min(w, x + dx)
    if cy not in events:
      events[cy] = []
    events[cy].append((lx, -1))
    events[cy].append((rx, 1))

  if y not in events:
    events[y] = []
  events[y].append((x, -2))

if len(events) != h:
  print(0)
  sys.exit(0)

ans = n
for y in events:
  rs = sorted(events[y])
  sol = 0
  lastX = 0
  rslen = len(rs)
  i = 0
  while i < rslen:
    j = i
    inc, dec = 0, 0
    block = False
    while j < rslen and rs[j][0] == rs[i][0]:
      if rs[j][1] == -1: inc += 1
      elif rs[j][1] == 1: dec += 1
      else: block = True
      j += 1
    i = j - 1

    if rs[i][0] - lastX > 1: ans = min(ans, sol)
    lastX = rs[i][0]

    sol += inc
    if not block: ans = min(ans, sol)
    sol -= dec
    i += 1
  if lastX < w:
    print(0)
    sys.exit(0)

print (ans)
