#include <bits/stdc++.h>
using namespace std;
const int N = 400005;
struct node {
  int l, r, f;
  node(int L = 0, int R = 0, int F = 0) {
    l = L;
    r = R;
    f = F;
  }
};
node merge(node a, node b) {
  if (b.r == 0) return a;
  if (a.r == 0) return b;
  if (a.r < b.l) return node(a.l, b.r, a.f + b.f + b.l - a.r - 1);
  int x = a.r - b.l + 1;
  b.f -= x;
  if (b.f < 0) {
    b.r -= b.f;
    b.f = 0;
  }
  return node(a.l, b.r, a.f + b.f);
}
node t[4 * N];
void add(int v, int l, int r, int pos, int val) {
  if (l == r) {
    if (t[v].r == 0)
      t[v] = node(l, l, 0);
    else
      t[v].r += val;
    if (t[v].r < l) t[v] = node();
    return;
  }
  int m = (l + r) / 2;
  if (pos <= m)
    add(v * 2, l, m, pos, val);
  else
    add(v * 2 + 1, m + 1, r, pos, val);
  t[v] = merge(t[v * 2], t[v * 2 + 1]);
}
node get(int v, int l, int r, int i, int j) {
  if (i > j) return node();
  if (l == i && r == j) return t[v];
  int m = (l + r) / 2;
  return merge(get(v * 2, l, m, i, min(m, j)),
               get(v * 2 + 1, m + 1, r, max(m + 1, i), j));
}
int n, m, k;
map<pair<int, int>, int> used;
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cin >> n >> k >> m;
  for (int i = 1; i <= m; i++) {
    int y, x;
    cin >> x >> y;
    int pos = y + abs(x - k);
    used[make_pair(y, x)] ^= 1;
    if (used[make_pair(y, x)])
      add(1, 1, n + n, pos, 1);
    else
      add(1, 1, n + n, pos, -1);
    cout << max(0, t[1].r - n) << endl;
  }
  return 0;
}
