#include <bits/stdc++.h>
using namespace std;
const int maxn = 3005 * 2;
int fa[maxn][maxn], matrix[maxn][maxn];
int r, c;
void init(int r, int c) {
  for (int i = 1; i <= r; i++) {
    for (int j = 1; j <= 2 * c; j++) {
      fa[i][j] = i * 10000 + j;
    }
  }
}
int findfa(int x, int y) {
  if (fa[x][y] == x * 10000 + y) return fa[x][y];
  return fa[x][y] = findfa(fa[x][y] / 10000, fa[x][y] % 10000);
}
const int fx[8] = {0, 0, -1, -1, -1, 1, 1, 1};
const int fy[8] = {1, -1, 0, 1, -1, 0, 1, -1};
void Union(int x, int y) {
  for (int i = 0; i < 8; i++) {
    int xx = x + fx[i];
    int yy = y + fy[i];
    if (yy == 0)
      yy = 2 * c;
    else if (yy == 2 * c + 1)
      yy = 1;
    if (matrix[xx][yy] == 1) {
      int f = findfa(xx, yy);
      fa[f / 10000][f % 10000] = fa[x][y];
    }
  }
}
bool put(int x, int y) {
  if (c == 1) return false;
  int x1 = x, y1 = y;
  int x2 = x, y2 = y + c;
  bool zj = false;
  for (int i = 0; i < 8; i++) {
    for (int j = 0; j < 8; j++) {
      int xx1 = x1 + fx[i];
      int yy1 = y1 + fy[i];
      if (yy1 == 0)
        yy1 = 2 * c;
      else if (yy1 == 2 * c + 1)
        yy1 = 1;
      int xx2 = x2 + fx[j];
      int yy2 = y2 + fy[j];
      if (yy2 == 0)
        yy2 = 2 * c;
      else if (yy2 == 2 * c + 1)
        yy2 = 1;
      if (matrix[xx1][yy1] == 1 && matrix[xx2][yy2] == 1) {
        int ff1 = findfa(xx1, yy1);
        int ff2 = findfa(xx2, yy2);
        if (ff1 == ff2) zj = true;
      }
    }
  }
  if (zj) {
    return false;
  } else {
    matrix[x1][y1] = 1;
    Union(x1, y1);
    matrix[x2][y2] = 1;
    Union(x2, y2);
    return true;
  }
}
int main() {
  int n;
  scanf("%d%d%d", &r, &c, &n);
  init(r, c);
  int ans = 0;
  for (int i = 0; i < n; i++) {
    int x, y;
    scanf("%d%d", &x, &y);
    if (put(x, y)) ans++;
  }
  printf("%d\n", ans);
  return 0;
}
