#include #include #include #include #include #include #include #include #include #include #include using namespace std; using namespace atcoder; typedef long long ll; #define rep(i,n) for (int i = 0; i < int(n);i++) vector par; int find(int x){ if (par[x] == -x){ return x; } else{ return par[x] = find(par[x]); } } int main(){ int n,q; cin >> n >> q; par.resize(n); vector a(n); rep(i,n){ int x; cin >> x; if (x == -1){ par[i] = -i; } else par[i] = x-1; } rep(i,n){ par[i] = find(i); } rep(i,q){ int a,b; cin >> a >> b; if (par[a-1] == par[b-1]){ cout << "Yes\n"; } else cout << "No\n"; } return 0; }