For problem statement at 1000-1999/1100-1199/1150-1159/1153/problemD.txt this is a correct solution, but verifier at 1000-1999/1100-1199/1150-1159/1153/verifierD.go ends with All tests passed can you fix the verifier? ```go
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
in := bufio.NewReader(os.Stdin)
out := bufio.NewWriter(os.Stdout)
defer out.Flush()
var n int
fmt.Fscan(in, &n)
op := make([]int, n+1)
for i := 1; i <= n; i++ {
fmt.Fscan(in, &op[i])
}
children := make([][]int, n+1)
for i := 2; i <= n; i++ {
var p int
fmt.Fscan(in, &p)
children[p] = append(children[p], i)
}
k := 0
for i := 1; i <= n; i++ {
if len(children[i]) == 0 {
k++
}
}
order := make([]int, 0, n)
stack := []int{1}
for len(stack) > 0 {
v := stack[len(stack)-1]
stack = stack[:len(stack)-1]
order = append(order, v)
for _, u := range children[v] {
stack = append(stack, u)
}
}
dp := make([]int, n+1)
for i := len(order) - 1; i >= 0; i-- {
v := order[i]
if len(children[v]) == 0 {
dp[v] = 1
} else if op[v] == 1 {
minVal := dp[children[v][0]]
for j := 1; j < len(children[v]); j++ {
if dp[children[v][j]] < minVal {
minVal = dp[children[v][j]]
}
}
dp[v] = minVal
} else {
sum := 0
for _, u := range children[v] {
sum += dp[u]
}
dp[v] = sum
}
}
fmt.Fprintln(out, k-dp[1]+1)
}
```