#include #include using namespace std; using namespace atcoder; using ll = long long; using ld = long double; using mint = modint998244353; int main() { int N, Q; cin >> N >> Q; dsu uf(N); for (int i = 0; i < N; i++) { 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") << endl; } return 0; }