#include <bits/stdc++.h>
using namespace std;
int n;
int seg[1048580], mx[1048580];
void merge(int i) {
  seg[i] = seg[i * 2] + seg[i * 2 + 1];
  mx[i] = max(mx[i * 2 + 1], mx[i * 2] + seg[i * 2 + 1]);
}
void upd(int k, int v) {
  k += 524287;
  if (v == 1) {
    if (++seg[k] == 1) {
      mx[k] = k - 524287;
    } else {
      ++mx[k];
    }
  } else {
    if (--seg[k] == 0) {
      mx[k] = 0;
    } else {
      --mx[k];
    }
  }
  for (k >>= 1; k; k >>= 1) merge(k);
}
set<pair<int, int> > st;
int main() {
  int m, k;
  scanf("%d %d %d", &n, &m, &k);
  for (int i = (1); i <= (k); i++) {
    int x, y;
    scanf("%d %d", &x, &y);
    if (st.find({x, y}) == st.end()) {
      upd(y + abs(x - m), 1);
      st.insert({x, y});
    } else {
      upd(y + abs(x - m), -1);
      st.erase({x, y});
    }
    printf("%d\n", max(0, mx[1] - n));
  }
  return 0;
}
