#include #include #include using namespace std; int H,W,N; int X[1<<17],Y[1<<17]; vectorG[3<<17]; vectortmp; vectorans; int vis[3<<17]; bool dfs(int u,int p) { vis[u]=tmp.size(); tmp.push_back(u); for(int v:G[u])if(v!=p) { if(vis[v]==-1) { if(dfs(v,u))return true; } else { ans=vector(tmp.begin()+vis[v],tmp.end()); return true; } } tmp.pop_back(); return false; } main() { cin>>H>>W>>N; for(int i=0;i>X[i]>>Y[i]; X[i]--,Y[i]--; G[i].push_back(N+X[i]); G[i].push_back(N+H+Y[i]); G[N+X[i]].push_back(i); G[N+H+Y[i]].push_back(i); } for(int i=0;iret; for(int id:ans)if(id