#include using namespace std; #define rep(i, a, b) for (int i = a; i < b; i++) using ll = long long; int main(){ cin.tie(nullptr); ios::sync_with_stdio(false); int n, m, q; cin >> n >> m; vector a(m), b(m); map mp; rep(i, 0, m) { cin >> a[i] >> b[i]; a[i]--, b[i]--; mp[a[i]]++; mp[b[i]]++; } cin >> q; vector t(q), qa(q), qb(q); set stq; rep(i, 0, q) { cin >> t[i] >> qa[i] >> qb[i]; qa[i]--, qb[i]--; if(t[i] == 1) { mp[qa[i]]++; mp[qb[i]]++; stq.insert(qb[i]); } else { mp[qa[i]]++; stq.insert(qa[i]); } } int sz = 0, szq = stq.size(); for(auto it = mp.begin(); it != mp.end(); it++) { it->second = sz; sz++; } vector> st(sz); set cl; rep(i, 0, m) { st[mp[a[i]]].insert(mp[b[i]]); } rep(i, 0, q) { if(t[i] == 1) { int aa = mp[qa[i]], bb = mp[qb[i]]; if(st[aa].count(bb)) st[aa].erase(bb); else st[aa].insert(bb); } else { int aa = mp[qa[i]]; if(cl.count(aa)) cl.erase(aa); else cl.insert(aa); } int c = n - szq; if(stq.count(qa[i]) == 0) c--; int a = mp[qa[i]]; for(auto it = stq.begin(); it != stq.end(); it++) { int b = mp[*it]; if(b == a) continue; if(cl.count(b) == 0 || st[a].count(b)) c++; } cout << c << endl; } }