For problem statement at 0-999/700-799/770-779/770/problemC.txt this is a correct solution, but verifier at 0-999/700-799/770-779/770/verifierC.go ends with All 100 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, k int
if _, err := fmt.Fscan(in, &n, &k); err != nil {
return
}
mains := make([]int, k)
for i := 0; i < k; i++ {
fmt.Fscan(in, &mains[i])
}
prereqs := make([][]int, n+1)
adj := make([][]int, n+1)
for i := 1; i <= n; i++ {
var t int
fmt.Fscan(in, &t)
if t > 0 {
prereqs[i] = make([]int, t)
for j := 0; j < t; j++ {
var x int
fmt.Fscan(in, &x)
prereqs[i][j] = x
adj[x] = append(adj[x], i)
}
}
}
needed := make([]bool, n+1)
stack := make([]int, 0)
for _, m := range mains {
if !needed[m] {
needed[m] = true
stack = append(stack, m)
for len(stack) > 0 {
u := stack[len(stack)-1]
stack = stack[:len(stack)-1]
for _, p := range prereqs[u] {
if !needed[p] {
needed[p] = true
stack = append(stack, p)
}
}
}
}
}
cnt := 0
for i := 1; i <= n; i++ {
if needed[i] {
cnt++
}
}
indeg := make([]int, n+1)
for i := 1; i <= n; i++ {
if !needed[i] {
continue
}
for _, p := range prereqs[i] {
if needed[p] {
indeg[i]++
}
}
}
q := make([]int, 0)
for i := 1; i <= n; i++ {
if needed[i] && indeg[i] == 0 {
q = append(q, i)
}
}
order := make([]int, 0, cnt)
head := 0
for head < len(q) {
u := q[head]
head++
order = append(order, u)
for _, v := range adj[u] {
if !needed[v] {
continue
}
indeg[v]--
if indeg[v] == 0 {
q = append(q, v)
}
}
}
if len(order) != cnt {
fmt.Fprintln(out, -1)
return
}
fmt.Fprintln(out, cnt)
for i := 0; i < cnt; i++ {
if i > 0 {
fmt.Fprint(out, " ")
}
fmt.Fprint(out, order[i])
}
fmt.Fprintln(out)
}
```