蒟蒻真的不知道哪错了
#include<bits/stdc++.h>
using namespace std;
//#include <ext/rope>
//using namespace __gnu_cxx;
#define int long long
int x,y,n,m,q;
struct op{
int x,y;
}a[300007];
//rope<int>v;
//deque<int>Q;
map<int,vector<int> >mp;
int tot,qp[1000001];
signed main() {
cin>>n>>m>>q;
int cnt = 0;
for(int i = 1;i <= q;++ i) {
scanf("%lld%lld",&a[i].x,&a[i].y);
//if(a[i].x == 1) cnt++;
}
/*if(cnt == q) {
if(n == 1) {
v.insert(0ll,0ll);
for(int i = 1;i <= m;++ i) v.insert(i,i);
for(int g = 1;g <= q;++ g) {
int k = v.at(a[g].y);
v.erase(a[g].y,1);
v.insert(m,k);
printf("%lld\n",k);
}
}
else {
for(int i = 2;i <= n;++ i) {
Q.push_back(m*i);
}
v.insert(0ll,0ll);
for(int i = 1;i <= m;++ i) v.insert(i,i);
for(int g = 1;g <= q;++ g) {
int k = v.at(a[g].y);
v.erase(a[g].y,1);
v.insert(m,Q.front());
Q.pop_front();
Q.push_back(k);
printf("%lld\n",k);
}
}
return 0;
}*/
for(int i = 1;i <= n;++ i) qp[i] = m*i;
for(int g = 1;g <= q;++ g) {
if(!mp[a[g].x].size()) {
mp[a[g].x].push_back(0);
for(int i = 1;i <= m;++ i) mp[a[g].x].push_back(m*(a[g].x-1)+i);
mp[a[g].x][m] = qp[a[g].x];
}
int k = mp[a[g].x][a[g].y];
for(int i = a[g].y+1;i <= m;++ i) mp[a[g].x][i-1] = mp[a[g].x][i];
for(int i = a[g].x+1;i <= n;++ i) qp[i-1] = qp[i];
qp[n] = k;
mp[a[g].x][m] = qp[a[g].x];
printf("%lld\n",k);
}
return 0;
}
```cpp