#include <bits/stdc++.h>
int fa[18000100], num[3010][6010], top;
int clo[18000100], tim;
bool color[3010][6010];
int mx[10] = {-1, -1, -1, 0, 0, 1, 1, 1}, my[10] = {-1, 0, 1, -1, 1, -1, 0, 1};
int r, c, n, ans;
int find(int x) {
  if (x == fa[x]) return x;
  return fa[x] = find(fa[x]);
}
inline bool check(int x, int y) {
  int i, xx, yy;
  ++tim;
  for (i = 0; i < 8; ++i) {
    xx = x + mx[i];
    yy = y + my[i];
    if (yy == 0) yy = 2 * c;
    if (color[xx][yy] && num[xx][yy]) clo[find(num[xx][yy])] = tim;
  }
  y += c;
  for (i = 0; i < 8; ++i) {
    xx = x + mx[i];
    yy = y + my[i];
    if (yy == 2 * c + 1) yy = 1;
    if (color[xx][yy] && num[xx][yy] && clo[find(num[xx][yy])] == tim) return 0;
  }
  return 1;
}
void add(int x, int y) {
  int i, xx, yy;
  for (i = 0; i < 8; ++i) {
    xx = x + mx[i];
    yy = y + my[i];
    if (yy == 2 * c + 1) yy = 1;
    if (yy == 0) yy = 2 * c;
    if (num[xx][yy] && color[xx][yy]) fa[find(num[xx][yy])] = num[x][y];
  }
}
int main() {
  int i, j, k, x, y;
  scanf("%d%d%d", &r, &c, &n);
  if (c == 1) {
    puts("0");
    return 0;
  }
  for (i = 1; i <= r; ++i)
    for (j = 1; j <= c * 2; ++j) {
      num[i][j] = ++top;
      fa[top] = top;
    }
  for (i = 1; i <= n; ++i) {
    scanf("%d%d", &x, &y);
    if (!check(x, y)) continue;
    ++ans;
    color[x][y] = color[x][y + c] = 1;
    add(x, y);
    add(x, y + c);
  }
  printf("%d\n", ans);
  return 0;
}
