#include using namespace std; #include using namespace atcoder; using ll = long long; using vi = vector; using vvi = vector>; using pii = pair; #define rep(i, n) for (int i = 0; i < (int)(n); ++i) #define repr(i, n) for (int i = (int)(n - 1); i >= 0; --i) int main() { cin.tie(nullptr); ios::sync_with_stdio(false); int n, q; cin >> n >> q; dsu uf(n); rep(i, n) { int p; cin >> p, p--; if (p >= 0) uf.merge(i, p); } while (q--) { int a, b; cin >> a >> b; a--, b--; cout << (uf.same(a, b) ? "Yes" : "No") << '\n'; } return 0; }