__
#include<bits/stdc++.h>
using namespace std;
int x,y;
struct node{
int x;
int y;
}a[10001];
bool cmp(node x,node y){
return x.x<y.x;
}
bool cmp1(node x,node y){
return x.y<y.y;
}
int h,w,c;
int vis[100000001],vis1[100000001];
int main(){
cin>>h>>w>>c;
for(int i=1;i<=c;i++){
cin>>a[i].x>>a[i].y;
vis[a[i].x]=1;
vis[a[x].y]=1;
}
for(int i=1;i<=h;i++){
if(vis[i]!=1){
sort(a+1,a+1+c,cmp);
int l=0,r=c;
while(l>r){
int m=(l+r)/2;
if(a[m].x<i){
l=m;
}
else{
r=m;
}
}
for(int j=l+2;j<=c;j++){
vis[a[j].x]=0,vis[a[j].x-1]=1;
a[j].x--;
}
}
}
for(int i=1;i<=w;i++){
if(vis1[i]!=1){
sort(a+1,a+1+c,cmp1);
int l=0,r=c;
while(l>r){
int m=(l+r)/2;
if(a[m].x<=i){
l=m;
}
else{
r=m;
}
}
for(int j=l+2;j<=c;j++){
vis[a[j].y]=0,vis[a[j].y-1]=1;
a[j].y--;
}
}
}
for(int i=1;i<=c;i++){
cout<<a[i].x<<" "<<a[i].y<<endl;
}
}
```