#include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n, m; cin >> n >> m; vector> g(n); vector> rev(n); for (int i = 0; i < m; ++i) { int u, v; cin >> u >> v; --u, --v; g[u].insert(v); rev[v].push_back(u); } int q; cin >> q; vector> queries(q); for (auto& [type, a, b] : queries) { cin >> type >> a >> b; --a; if (type == 1) --b; } vector locked(n, false); vector cnt(n, 0); int locked_count = 0; for (auto [type, a, b] : queries) { if (type == 1) { if (g[a].contains(b)) { g[a].erase(b); if (locked[b]) --cnt[a]; } else { g[a].insert(b); if (locked[b]) ++cnt[a]; } } else { locked[a] = !locked[a]; locked_count += locked[a] ? 1 : -1; for (int u : rev[a]) { if (g[u].contains(a)) { cnt[u] += locked[a] ? 1 : -1; } } } cout << n - locked_count + cnt[a] - !locked[a] << '\n'; } }