#define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define INF (1<<29) #define rep(i,n) for(int i=0;i<(int)(n);i++) #define all(v) v.begin(),v.end() #define uniq(v) v.erase(unique(all(v)),v.end()) #define MAX_N 100000 int par[MAX_N]; int _rank[MAX_N]; vector child[MAX_N]; bool can[MAX_N]; void init(int n) { for (int i = 0; i> n >> m >> q; set> e; rep(i, m) { int a, b; cin >> a >> b; a--; b--; e.emplace(a, b); } rep(i, q) { cin >> x[i] >> y[i]; x[i]--; y[i]--; e.erase(make_pair(x[i], y[i])); } init(n); for (auto p : e) { unite(p.first, p.second); } rep(i, n) { if (can[find(i)])ans[i] = -1; } for (int i = q - 1; i >= 0; i--) { if (!same(x[i], y[i])) { if (can[find(x[i])]) { no(find(y[i]), i + 1); } else if (can[find(y[i])]) { no(find(x[i]), i + 1); } unite(x[i], y[i]); } } for (int i = 1; i