#include using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); int N,M; cin >> N >> M; vector> AB(M); vector all; for(auto &[a,b] : AB) cin >> a >> b,all.push_back(a),all.push_back(b); int Q; cin >> Q; vector> Query(Q); for(auto &[q,a,b] : Query) cin >> q >> a >> b,all.push_back(a),all.push_back(b); sort(all.begin(),all.end()); all.erase(unique(all.begin(),all.end()),all.end()); int n = all.size(); vector> Graph(n); for(auto [a,b] : AB){ a = lower_bound(all.begin(),all.end(),a)-all.begin(); b = lower_bound(all.begin(),all.end(),b)-all.begin(); Graph.at(a).insert(b); } int ng = 0; set NG; for(auto [q,a,b] : Query){ a = lower_bound(all.begin(),all.end(),a)-all.begin(); b = lower_bound(all.begin(),all.end(),b)-all.begin(); if(q == 1){ if(Graph.at(a).count(b)) Graph.at(a).erase(b); else Graph.at(a).insert(b); } else{ if(NG.count(a)) NG.erase(a); else NG.insert(a); } int answer = N-1; for(auto p : NG){ if(a == p) continue; if(Graph.at(a).count(p)){} else answer--; } cout << answer << "\n"; } }