#include using namespace std; const int N=2e5+10; int fa[N]; int n,q,x,y; int getfather(int x){return fa[x]==x?x:fa[x]=getfather(fa[x]);} void merge(int x,int y){ x=getfather(x); y=getfather(y); fa[x]=y; } int main(){ scanf("%d%d",&n,&q); for (int i=1;i<=n;i++) fa[i]=i; for (int i=1;i<=n;i++){ scanf("%d",&x); if (x!=-1) merge(i,x); } for (int i=1;i<=q;i++){ scanf("%d%d",&x,&y); if (getfather(x)==getfather(y)) puts("Yes"); else puts("No"); } }