package main import . "fmt" import . "os" import bf "bufio" func main() { rd := bf.NewReader(Stdin) var n, q int Fscan(rd,&n,&q) p := make([]int, n+1) for i := range p[1:] { Fscan(rd, &p[i+1]) } id := 0 g := make([]int, n+n) m := make([]int, n+1) for i, e := range p[1:] { if m[i+1] > 0 { continue } id++ g[id] = id m[i+1] = id for e > 0 && m[e] == 0 { m[e] = id e = p[e] } if e > 0 { g[id] = g[m[e]] } } for ; q > 0; q-- { var a, b int Fscan(rd,&a,&b) if g[m[a]] == g[m[b]] { Println("Yes") } else { Println("No") } } }