import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String[] sa = br.readLine().split(" "); int n = Integer.parseInt(sa[0]); int m = Integer.parseInt(sa[1]); Map> map = new HashMap<>(); for (int i = 0; i < m; i++) { sa = br.readLine().split(" "); int u = Integer.parseInt(sa[0]); int v = Integer.parseInt(sa[1]); Set set = map.get(u); if (set == null) { set = new HashSet<>(); map.put(u, set); } set.add(v); } Set ngSet = new HashSet<>(); int q = Integer.parseInt(br.readLine()); PrintWriter pw = new PrintWriter(System.out); for (int i = 0; i < q; i++) { sa = br.readLine().split(" "); int t = Integer.parseInt(sa[0]); int a = Integer.parseInt(sa[1]); int b = Integer.parseInt(sa[2]); if (t == 1) { Set set = map.get(a); if (set == null) { set = new HashSet<>(); set.add(b); map.put(a, set); } else { if (set.contains(b)) { set.remove(b); } else { set.add(b); } } } else { if (ngSet.contains(a)) { ngSet.remove(a); } else { ngSet.add(a); } } Set set = map.get(a); int ans = n - ngSet.size(); if (!ngSet.contains(a)) { ans--; } if (set != null) { for (Integer e : ngSet) { if (set.contains(e)) { ans++; } } } pw.println(ans); } pw.flush(); br.close(); } }