#include<bits/stdc++.h>
using namespace std;
const int N = 2e5 + 5;
int n , m , t , B , o , r;
bool heavy[N];
bitset < N > b[3005];
int ans[3005][3005];
int mp[N] , cnt[N];
bool f[N];
set < int > g[N];
struct ed{
int u , v;
}edge[N];
struct que{
int u , v , type;
}q[N];
vector < int > h;
void add(int u , int v)
{
if(g[u].find(v) == g[u].end())
{
if(heavy[u] == true && heavy[v] == true)
{
ans[mp[u]][mp[v]] = true;
ans[mp[v]][mp[u]] = true;
b[mp[u]][v] = true;
b[mp[v]][u] = true;
for(auto x: h)
{
if(b[mp[u]][x] == true)
{
ans[mp[v]][mp[x]] = true;
ans[mp[x]][mp[v]] = true;
}
if(b[mp[v]][x] == true)
{
ans[mp[u]][mp[x]] = true;
ans[mp[x]][mp[u]] = true;
}
}
}
else if(heavy[u] == true)
{
b[mp[u]][v] = true;
for(auto x: g[v])
if(heavy[x])
{
ans[mp[u]][mp[x]] = true;
ans[mp[x]][mp[u]] = true;
}
}
else if(heavy[v] == true)
{
b[mp[v]][u] = true;
for(auto x: g[u])
if(heavy[x])
{
ans[mp[v]][mp[x]] = true;
ans[mp[x]][mp[v]] = true;
}
}
g[u].insert(v);
g[v].insert(u);
}
}
main()
{
freopen("friends.inp","r",stdin);
freopen("friends.out","w",stdout);
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n >> m;
for(int i = 1 ; i <= m ; i++)
{
cin >> edge[i].u >> edge[i].v;
cnt[edge[i].u]++;
cnt[edge[i].v]++;
}
cin >> t;
for(int i = 1 ; i <= t ; i++)
{
cin >> q[i].type >> q[i].u >> q[i].v;
if(q[i].type == 2)
{
cnt[edge[i].u]++;
cnt[edge[i].v]++;
}
}
int B = sqrt(m + t);
for(int i = 1 ; i <= n ; i++)
if(cnt[i] > B)
{
h.push_back(i);
heavy[i] = true;
mp[i] = ++r;
}
for(int i = 1 ; i <= m ; i++)
add(edge[i].u , edge[i].v);
for(int i = 1 ; i <= t ; i++)
{
if(q[i].type == 1)
add(q[i].u , q[i].v);
else
{
bool check = false;
if(heavy[q[i].u] == false && heavy[q[i].v] == false)
{
for(auto x: g[q[i].u])
{
f[x] = true;
if(x == q[i].v)
{
check = true;
break;
}
}
for(auto x: g[q[i].v])
if(f[x])
{
check = true;
break;
}
for(auto x: g[q[i].u])
f[x] = false;
}
else if(heavy[q[i].u] == false)
{
for(auto x: g[q[i].u])
{
f[x] = true;
if(x == q[i].v || b[mp[q[i].v]][x])
{
check = true;
break;
}
}
for(auto x: g[q[i].u])
f[x] =false;
}
else if(heavy[q[i].v] == false)
{
for(auto x: g[q[i].v])
{
f[x] = true;
if(x == q[i].u || b[mp[q[i].u]][x])
{
check = true;
break;
}
}
for(auto x: g[q[i].v])
f[x] = false;
}
else
{
if(ans[mp[q[i].u]][mp[q[i].v]] == true)
check = true;
}
if(check)
cout << "YES\n";
else
cout << "NO\n";
}
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCgpjb25zdCBpbnQgTiA9IDJlNSArIDU7CmludCBuICwgbSAsIHQgLCBCICwgbyAsIHI7CmJvb2wgaGVhdnlbTl07CmJpdHNldCA8IE4gPiBiWzMwMDVdOwppbnQgYW5zWzMwMDVdWzMwMDVdOwppbnQgbXBbTl0gLCBjbnRbTl07CmJvb2wgZltOXTsKc2V0IDwgaW50ID4gZ1tOXTsKCnN0cnVjdCBlZHsKICAgIGludCB1ICwgdjsKfWVkZ2VbTl07CgpzdHJ1Y3QgcXVlewogICAgaW50IHUgLCB2ICwgdHlwZTsKfXFbTl07Cgp2ZWN0b3IgPCBpbnQgPiBoOwoKdm9pZCBhZGQoaW50IHUgLCBpbnQgdikKewogICAgaWYoZ1t1XS5maW5kKHYpID09IGdbdV0uZW5kKCkpCiAgICB7CiAgICAgICAgaWYoaGVhdnlbdV0gPT0gdHJ1ZSAmJiBoZWF2eVt2XSA9PSB0cnVlKQogICAgICAgIHsKICAgICAgICAgICAgYW5zW21wW3VdXVttcFt2XV0gPSB0cnVlOwogICAgICAgICAgICBhbnNbbXBbdl1dW21wW3VdXSA9IHRydWU7CiAgICAgICAgICAgIGJbbXBbdV1dW3ZdID0gdHJ1ZTsKICAgICAgICAgICAgYlttcFt2XV1bdV0gPSB0cnVlOwoKCiAgICAgICAgICAgIGZvcihhdXRvIHg6IGgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmKGJbbXBbdV1dW3hdID09IHRydWUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgYW5zW21wW3ZdXVttcFt4XV0gPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGFuc1ttcFt4XV1bbXBbdl1dID0gdHJ1ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmKGJbbXBbdl1dW3hdID09IHRydWUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgYW5zW21wW3VdXVttcFt4XV0gPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGFuc1ttcFt4XV1bbXBbdV1dID0gdHJ1ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlIGlmKGhlYXZ5W3VdID09IHRydWUpCiAgICAgICAgewogICAgICAgICAgICBiW21wW3VdXVt2XSA9IHRydWU7CiAgICAgICAgICAgIGZvcihhdXRvIHg6IGdbdl0pCiAgICAgICAgICAgICAgICBpZihoZWF2eVt4XSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBhbnNbbXBbdV1dW21wW3hdXSA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgYW5zW21wW3hdXVttcFt1XV0gPSB0cnVlOwogICAgICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlIGlmKGhlYXZ5W3ZdID09IHRydWUpCiAgICAgICAgewogICAgICAgICAgICBiW21wW3ZdXVt1XSA9IHRydWU7CiAgICAgICAgICAgIGZvcihhdXRvIHg6IGdbdV0pCiAgICAgICAgICAgICAgICBpZihoZWF2eVt4XSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBhbnNbbXBbdl1dW21wW3hdXSA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgYW5zW21wW3hdXVttcFt2XV0gPSB0cnVlOwogICAgICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBnW3VdLmluc2VydCh2KTsKICAgICAgICBnW3ZdLmluc2VydCh1KTsKICAgIH0KfQoKbWFpbigpCnsKICAgIGZyZW9wZW4oImZyaWVuZHMuaW5wIiwiciIsc3RkaW4pOwogICAgZnJlb3BlbigiZnJpZW5kcy5vdXQiLCJ3IixzdGRvdXQpOwoKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsKICAgIGNpbiA+PiBuID4+IG07CgogICAgZm9yKGludCBpID0gMSA7IGkgPD0gbSA7IGkrKykKICAgIHsKICAgICAgICBjaW4gPj4gZWRnZVtpXS51ID4+IGVkZ2VbaV0udjsKICAgICAgICBjbnRbZWRnZVtpXS51XSsrOwogICAgICAgIGNudFtlZGdlW2ldLnZdKys7CiAgICB9CiAgICBjaW4gPj4gdDsKICAgIGZvcihpbnQgaSA9IDEgOyBpIDw9IHQgOyBpKyspCiAgICB7CiAgICAgICAgY2luID4+IHFbaV0udHlwZSA+PiBxW2ldLnUgPj4gcVtpXS52OwogICAgICAgIGlmKHFbaV0udHlwZSA9PSAyKQogICAgICAgIHsKICAgICAgICAgICAgY250W2VkZ2VbaV0udV0rKzsKICAgICAgICAgICAgY250W2VkZ2VbaV0udl0rKzsKICAgICAgICB9CiAgICB9CiAgICBpbnQgQiA9IHNxcnQobSArIHQpOwogICAgZm9yKGludCBpID0gMSA7IGkgPD0gbiA7IGkrKykKICAgICAgICBpZihjbnRbaV0gPiBCKQogICAgICAgIHsKICAgICAgICAgICAgaC5wdXNoX2JhY2soaSk7CiAgICAgICAgICAgIGhlYXZ5W2ldID0gdHJ1ZTsKICAgICAgICAgICAgbXBbaV0gPSArK3I7CiAgICAgICAgfQoKICAgIGZvcihpbnQgaSA9IDEgOyBpIDw9IG0gOyBpKyspCiAgICAgICAgYWRkKGVkZ2VbaV0udSAsIGVkZ2VbaV0udik7CgoKICAgIGZvcihpbnQgaSA9IDEgOyBpIDw9IHQgOyBpKyspCiAgICB7CiAgICAgICAgaWYocVtpXS50eXBlID09IDEpCiAgICAgICAgICAgIGFkZChxW2ldLnUgLCBxW2ldLnYpOwogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIGJvb2wgY2hlY2sgPSBmYWxzZTsKICAgICAgICAgICAgaWYoaGVhdnlbcVtpXS51XSA9PSBmYWxzZSAmJiBoZWF2eVtxW2ldLnZdID09IGZhbHNlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBmb3IoYXV0byB4OiBnW3FbaV0udV0pCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgZlt4XSA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgaWYoeCA9PSBxW2ldLnYpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBjaGVjayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBmb3IoYXV0byB4OiBnW3FbaV0udl0pCiAgICAgICAgICAgICAgICAgICAgaWYoZlt4XSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGZvcihhdXRvIHg6IGdbcVtpXS51XSkKICAgICAgICAgICAgICAgICAgICBmW3hdID0gZmFsc2U7CgogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYoaGVhdnlbcVtpXS51XSA9PSBmYWxzZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZm9yKGF1dG8geDogZ1txW2ldLnVdKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGZbeF0gPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGlmKHggPT0gcVtpXS52IHx8IGJbbXBbcVtpXS52XV1beF0pCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBjaGVjayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZvcihhdXRvIHg6IGdbcVtpXS51XSkKICAgICAgICAgICAgICAgICAgICBmW3hdID1mYWxzZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKGhlYXZ5W3FbaV0udl0gPT0gZmFsc2UpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGZvcihhdXRvIHg6IGdbcVtpXS52XSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBmW3hdID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBpZih4ID09IHFbaV0udSB8fCBiW21wW3FbaV0udV1dW3hdKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBmb3IoYXV0byB4OiBnW3FbaV0udl0pCiAgICAgICAgICAgICAgICAgICAgZlt4XSA9IGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYoYW5zW21wW3FbaV0udV1dW21wW3FbaV0udl1dID09IHRydWUpCiAgICAgICAgICAgICAgICAgICAgY2hlY2sgPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKGNoZWNrKQogICAgICAgICAgICAgICAgY291dCA8PCAiWUVTXG4iOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBjb3V0IDw8ICJOT1xuIjsKICAgICAgICB9CiAgICB9Cgp9Cg==