#include<iostream>
using namespace std;
const int N = 5e5 + 10, mod = 998244353;
int n, m, q, u, v, op, hsu[N], hsv[N], hss[N], nhs = 0, whs;
int main(){
cin >> n >> m;
hsu[1] = whs = rand();
for(int i = 2; i <= n; i++){
hsu[i] = rand();
whs = (whs + hsu[i]) % mod;
}
while(m--){
cin >> u >> v;
hsv[v] = (hsu[u] + hsv[v]) % mod;
nhs = (hsu[u] + nhs) % mod;
}
for(int i = 1; i <= n; i++){
hss[i] = hsv[i];
}
cin >> q;
while(q--){
cin >> op >> u;
if(op == 1){
cin >> v;
hsv[v] = ((hsv[v] - hsu[u]) % mod + mod) % mod;
nhs = ((nhs - hsu[u]) % mod + mod) % mod;
}
else if(op == 2){
nhs = ((nhs - hsv[u]) % mod + mod) % mod;
hsv[u] = 0;
}
else if(op == 3){
cin >> v;
hsv[v] = (hsv[v] + hsu[u]) % mod;
nhs = (nhs + hsu[u]) % mod;
}
else{
nhs = (nhs + hss[u] - hsv[u]) % mod;
hsv[u] = hss[u];
}
if(whs == nhs) cout << "YES\n";
else cout << "NO\n";
}
return 0;
}