#include <bits/stdc++.h>
using namespace std;
int isprm[5000001 + 2], countFactor[5000001 + 2], totFac[5000001 + 2];
int prime[3300000];
int ind = -1;
void seive() {
  int sq = sqrt(5000001) + 1, d;
  if (sq % 2 == 0) sq++;
  isprm[2] = 0;
  countFactor[2] = 1;
  prime[++ind] = 2;
  for (int i = 2; i * 2 <= 5000001; i++) {
    d = i * 2;
    isprm[d] = 1;
    while (d % 2 == 0) {
      countFactor[2 * i]++;
      d /= 2;
    }
  }
  for (int i = 3; i <= sq; i += 2) {
    if (isprm[i] == 0) {
      prime[++ind] = i;
      countFactor[i] = 1;
      for (int j = 2; j * i <= 5000001; j++) {
        isprm[j * i] = 1;
        d = i * j;
        while (d % i == 0) {
          countFactor[i * j]++;
          d /= i;
        }
      }
    }
  }
  for (int i = sq + 2; i <= 5000001; i += 2) {
    if (isprm[i] == 0) {
      countFactor[i] = 1;
      for (int j = 2; j * i <= 5000001; j++) {
        d = i * j;
        while (d % i == 0) {
          countFactor[i * j]++;
          d /= i;
        }
      }
      prime[++ind] = i;
    }
  }
}
vector<int> v;
int main() {
  int i, n, m, q, locbst, bst, r, c, j, cur, ar[502][502];
  cin >> n >> m >> q;
  bst = 0;
  for (i = 1; i <= n; i++) {
    cur = 0, locbst = 0;
    for (j = 1; j <= m; j++) {
      cin >> ar[i][j];
      if (ar[i][j] == 1) {
        cur++;
        locbst = max(locbst, cur);
        bst = max(bst, locbst);
      } else {
        cur = 0;
      }
    }
    ar[i][0] = locbst;
  }
  for (i = 1; i <= q; i++) {
    cin >> r >> c;
    if (ar[r][c] == 1)
      ar[r][c] = 0;
    else
      ar[r][c] = 1;
    cur = 0, locbst = 0;
    for (j = 1; j <= m; j++) {
      if (ar[r][j] == 1) {
        cur++;
        locbst = max(locbst, cur);
      } else {
        cur = 0;
      }
    }
    ar[r][0] = locbst;
    bst = 0;
    for (j = 1; j <= n; j++) {
      bst = max(bst, ar[j][0]);
    }
    printf("%d\n", bst);
    ;
  }
  return 0;
}
