import sys input = lambda :sys.stdin.readline()[:-1] ni = lambda :int(input()) na = lambda :list(map(int,input().split())) yes = lambda :print("yes");Yes = lambda :print("Yes");YES = lambda : print("YES") no = lambda :print("no");No = lambda :print("No");NO = lambda : print("NO") ####################################################################### from collections import defaultdict N = 10 ** 9 + 100 n, m = na() E = defaultdict(int) e = [] s = [] cnt = n for _ in range(m): u, v = na() s.append(u) s.append(v) e.append((u, v)) """ ステータスが公開の人数 + (a にフォローされている かつ 非公開) """ q = ni() que = [na() for i in range(q)] for i in range(q): if que[i][0] == 1: s.append(que[i][1]) s.append(que[i][2]) else: s.append(que[i][1]) s = sorted(set(s)) M = len(s) d = {x:i for i, x in enumerate(s)} e = [(d[e[i][0]], d[e[i][1]]) for i in range(m)] for i in range(m): E[e[i][0] * M + e[i][1]] = 1 QUE = [] for i in range(q): if que[i][0] == 1: QUE.append((1, d[que[i][1]], d[que[i][2]])) else: QUE.append((2, d[que[i][1]], -1)) g = [] f = [1] * M used = [0] * M for i in range(q): q, a, b = QUE[i] # print(q, a, b) g.append(a) if b != -1: g.append(b) if q == 1: E[a * M + b] ^= 1 else: if f[a] == 0: f[a] = 1 cnt += 1 else: f[a] = 0 cnt -= 1 ans = cnt - f[a] # print(ans, g, f) for b in g: if used[b]: continue used[b] = 1 if f[b] == 0 and E[a * M + b]: ans += 1 for b in g: used[b] = 0 print(ans)