#include <bits/stdc++.h>
using namespace std;
int n, m, s, d[2002][2002];
bool u[2002][2002];
bool check(int x, int y, int z) {
  for (int i = -z; i <= z; ++i) {
    if (x + i < 1) continue;
    if (x + i > n) break;
    int j = z - abs(i);
    if ((y - j > 0) && (!u[x + i][y - j])) {
      printf("%d %d\n", x + i, y - j);
      u[x + i][y - j] = true;
      d[x][y] = z;
      return true;
    }
    if ((y + j <= m) && (!u[x + i][y + j])) {
      printf("%d %d\n", x + i, y + j);
      u[x + i][y + j] = true;
      d[x][y] = z;
      return true;
    }
  }
  return false;
}
int main(void) {
  scanf("%d %d %d", &n, &m, &s);
  for (int i = 1; i <= s; ++i) {
    int j, k;
    scanf("%d %d", &j, &k);
    int ans = d[j][k];
    ans = max(ans, d[j - 1][k] - 1);
    ans = max(ans, d[j][k - 1] - 1);
    ans = max(ans, d[j + 1][k] - 1);
    ans = max(ans, d[j][k + 1] - 1);
    ans = max(ans, d[j - 1][k - 1] - 2);
    ans = max(ans, d[j + 1][k - 1] - 2);
    ans = max(ans, d[j - 1][k + 1] - 2);
    ans = max(ans, d[j + 1][k + 1] - 2);
    while (!check(j, k, ans)) ++ans;
  }
  return 0;
}
