#include using namespace std; #define rep(i, a, b) for (int i = a; i < b; i++) using ll = long long; int main(){ 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); 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]]++; } else { mp[qa[i]]++; } } int sz = 0; for(auto it = mp.begin(); it != mp.end(); it++) { it->second = sz; sz++; } vector> st(sz), rst(sz); set cl; rep(i, 0, m) { st[mp[a[i]]].insert(mp[b[i]]); rst[mp[b[i]]].insert(mp[a[i]]); } rep(i, 0, q) { if(t[i] == 1) { int a = mp[qa[i]], b = mp[qb[i]]; if(st[a].count(b)) { st[a].erase(b); rst[b].erase(a); } else { st[a].insert(b); rst[b].insert(a); } } else { int a = mp[qa[i]]; if(cl.count(a)) cl.erase(a); else cl.insert(a); } int c = n - cl.size(); int a = mp[qa[i]]; if(cl.count(a) == 0) c--; for(auto it = cl.begin(); it != cl.end(); it++) { if(rst[*it].count(a)) c++; } cout << c << endl; } }