#include #include #include #include using namespace std; int main() { int r, c, n; cin >> r >> c >> n; vector>> ret(r); for(auto& x: ret) { x.resize(c); for(auto& y: x) fill(y.begin(), y.end(), -1); } queue> q; for(int i = 0; i < n; i++) { int x, y; cin >> x >> y; x--; y--; q.push({i+1, x, y}); } int dx[4]{-1,0,1,0}; int dy[4]{0,1,0,-1}; while(q.size()) { auto [idx, rx, ry] = q.front(); q.pop(); bool found = false; bool ins = false; for(auto& x: ret[rx][ry]) { if(x == idx) { found = true; break; } if(x == -1) { x = idx; ins = true; break; } } if(found || !ins) continue; for(int k = 0; k < 4; k++) { int nx = rx + dx[k]; int ny = ry + dy[k]; if(nx >= 0 && nx < r && ny >= 0 && ny < c) q.push({idx, nx, ny}); } } for(int k = 0; k < 2; k++) for(int i = 0; i < r; i++) for(int j = 0; j < c; j++) cout << ret[i][j][k] << " \n"[j == c-1]; }