#include <bits/stdc++.h>
using namespace std;

int m, n, k;

vector<pair<int, int> > p;
bool table[1000][1000];
void make_point(int y, int x) {
    cout << y << ' ' << x << endl;
    if (!table[y][x]) {
        p.push_back(make_pair(y, x));
        table[y][x] = true;
    }
}

int main() {
    cin >> m >> n >> k;
    for (int i = 0; i < k; ++ i) {
        int x, y;
        cin >> x >> y;
        table[x][y] = true;
        p.push_back(make_pair(x, y));
        int curr = p.size() - 1;
        /*while (curr > 0 && p[curr].first <= p[curr - 1].first) {
            if (p[curr].first == p[curr - 1].first && p[curr].second >= p[curr - 1].second) { break; }
            swap(p[curr], p[curr - 1]); curr --;
        }*/
    }
    for (int i = 0; i < p.size(); ++ i) {
        int hf = n / 2;
        if (n % 2 == 0) {
            if (p[i].second <= hf) {
                make_point(p[i].first, 1 + p[i].second + (hf - p[i].second) * 2);
            } else {
                make_point(p[i].first, 1 + p[i].second - (p[i].second - hf) * 2);
            }
        } else {
            if (p[i].second < hf) {
                make_point(p[i].first, p[i].second + (1 + hf - p[i].second) * 2);
            }
            else if (p[i].second > hf) {
                make_point(p[i].first, p[i].second - (1 + p[i].second - hf) * 2);
            }
        }
        /*for (int j = 0; j < p.size() - 1; ++ j) {
            if (p.back().first == p[j].first && p.back().second == p[j].second) { p.pop_back(); }
        }*/
        int hm = m / 2;
        if (m % 2 == 0) {
            if (p[i].second <= hm) {
                make_point(1 + p[i].first + (hm - p[i].first) * 2, p[i].second);
            } else {
                make_point(1 + p[i].first - (p[i].first - hm) * 2, p[i].second);
            }
        } else {
            if (p[i].second < hm) {
                make_point(p[i].first + (1 + hm - p[i].first) * 2, p[i].second);
            } else if (p[i].second > hm) {
                make_point(p[i].first - (1 + p[i].first - hm) * 2, p[i].second);
                cout << p[i].first - (1 + p[i].first - hm) * 2 << endl;
            }
        }
        /*for (int j = 0; j < p.size() - 1; ++ j) {
            if (p.back().first == p[j].first && p.back().second == p[j].second) { p.pop_back(); }
        }*/
    }
    cout << p.size() << endl;
    return 0;
}
