/*
* author : 3hmed_124M
*/
#include <bits/stdc++.h>
#include <string>
using namespace std;
#define ll long long
#define int long long
#define el '\n'
#define all(v) v.begin(), v.end()
const int mod = 1e9 + 7, OO = 0x3f3f3f3f;
const int dx[] = {1, -1, 0, 0, 1, 1, -1, -1};
const int dy[] = {0, 0, 1, -1, 1, -1, 1, -1};
const char di[] = {'U', 'R', 'L', 'D'};
void solve() {
int n, m;
cin >> n >> m;
vector<vector<int> > graph(n + 1);
for (int i = 0; i < m; ++i) {
int x, y;
cin >> x >> y;
graph[y].push_back(x);
}
vector<bool> visited(n + 1, false);
int q;
cin >> q;
while (q--) {
int x, y;
cin >> x >> y;
if (x == 1) {
if (visited[y]) continue;
queue<int> q;
visited[y] = true;
q.push(y);
while (!q.empty()) {
int u = q.front();
q.pop();
for (auto v: graph[u]) {
if (!visited[v]) {
visited[v] = true;
q.push(v);
}
}
}
} else if (x == 2) {
if (visited[y]) {
cout << "YES" << el;
} else {
cout << "NO" << el;
}
}
}
}
int32_t main() {
ios_base::sync_with_stdio(false);
cout.tie(nullptr), cin.tie(nullptr);
// if(fopen("in.txt", "r")){
// freopen("in.txt", "r", stdin);
// freopen("out.txt", "w", stdout);
// }
int tt = 1;
//cin >> tt;
while (tt--) {
solve();
}
return 0;
}
LyoKKiAgICAgICBhdXRob3IgOiAgM2htZWRfMTI0TQoqLwojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KI2luY2x1ZGUgPHN0cmluZz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBsbCAgICAgbG9uZyBsb25nCiNkZWZpbmUgaW50ICAgIGxvbmcgbG9uZwojZGVmaW5lIGVsICAgICAnXG4nCiNkZWZpbmUgYWxsKHYpIHYuYmVnaW4oKSwgdi5lbmQoKQpjb25zdCBpbnQgbW9kID0gMWU5ICsgNywgT08gPSAweDNmM2YzZjNmOwpjb25zdCBpbnQgZHhbXSA9IHsxLCAtMSwgMCwgMCwgMSwgMSwgLTEsIC0xfTsKY29uc3QgaW50IGR5W10gPSB7MCwgMCwgMSwgLTEsIDEsIC0xLCAxLCAtMX07CmNvbnN0IGNoYXIgZGlbXSA9IHsnVScsICdSJywgJ0wnLCAnRCd9OwoKdm9pZCBzb2x2ZSgpIHsKICAgIGludCBuLCBtOwogICAgY2luID4+IG4gPj4gbTsKICAgIHZlY3Rvcjx2ZWN0b3I8aW50PiA+IGdyYXBoKG4gKyAxKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbTsgKytpKSB7CiAgICAgICAgaW50IHgsIHk7CiAgICAgICAgY2luID4+IHggPj4geTsKICAgICAgICBncmFwaFt5XS5wdXNoX2JhY2soeCk7CiAgICB9CiAgICB2ZWN0b3I8Ym9vbD4gdmlzaXRlZChuICsgMSwgZmFsc2UpOwogICAgaW50IHE7CiAgICBjaW4gPj4gcTsKICAgIHdoaWxlIChxLS0pIHsKICAgICAgICBpbnQgeCwgeTsKICAgICAgICBjaW4gPj4geCA+PiB5OwogICAgICAgIGlmICh4ID09IDEpIHsKICAgICAgICAgICAgaWYgKHZpc2l0ZWRbeV0pIGNvbnRpbnVlOwogICAgICAgICAgICBxdWV1ZTxpbnQ+IHE7CiAgICAgICAgICAgIHZpc2l0ZWRbeV0gPSB0cnVlOwogICAgICAgICAgICBxLnB1c2goeSk7CiAgICAgICAgICAgIHdoaWxlICghcS5lbXB0eSgpKSB7CiAgICAgICAgICAgICAgICBpbnQgdSA9IHEuZnJvbnQoKTsKICAgICAgICAgICAgICAgIHEucG9wKCk7CiAgICAgICAgICAgICAgICBmb3IgKGF1dG8gdjogZ3JhcGhbdV0pIHsKICAgICAgICAgICAgICAgICAgICBpZiAoIXZpc2l0ZWRbdl0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmlzaXRlZFt2XSA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIHEucHVzaCh2KTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgaWYgKHggPT0gMikgewogICAgICAgICAgICBpZiAodmlzaXRlZFt5XSkgewogICAgICAgICAgICAgICAgY291dCA8PCAiWUVTIiA8PCBlbDsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGNvdXQgPDwgIk5PIiA8PCBlbDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKaW50MzJfdCBtYWluKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjb3V0LnRpZShudWxscHRyKSwgY2luLnRpZShudWxscHRyKTsKCiAgICAvLyBpZihmb3BlbigiaW4udHh0IiwgInIiKSl7CiAgICAvLyAgICAgZnJlb3BlbigiaW4udHh0IiwgInIiLCBzdGRpbik7CiAgICAvLyAgICAgZnJlb3Blbigib3V0LnR4dCIsICJ3Iiwgc3Rkb3V0KTsKICAgIC8vIH0KCiAgICBpbnQgdHQgPSAxOwogICAgLy9jaW4gPj4gdHQ7CiAgICB3aGlsZSAodHQtLSkgewogICAgICAgIHNvbHZlKCk7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0K