← Home
package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	reader := bufio.NewReader(os.Stdin)
	writer := bufio.NewWriter(os.Stdout)
	defer writer.Flush()

	var T int
	if _, err := fmt.Fscan(reader, &T); err != nil {
		return
	}

	for t := 0; t < T; t++ {
		var n, m int
		fmt.Fscan(reader, &n, &m)

		adj := make([][]int, n+1)
		for i := 0; i < m; i++ {
			var u, v int
			fmt.Fscan(reader, &u, &v)
			adj[u] = append(adj[u], v)
		}

		maxLen := make([]int, n+1)
		var closed []int

		for i := 1; i <= n; i++ {
			if maxLen[i] == 2 {
				closed = append(closed, i)
			} else {
				for _, v := range adj[i] {
					if maxLen[i]+1 > maxLen[v] {
						maxLen[v] = maxLen[i] + 1
					}
				}
			}
		}

		fmt.Fprintln(writer, len(closed))
		for i, v := range closed {
			if i > 0 {
				fmt.Fprint(writer, " ")
			}
			fmt.Fprint(writer, v)
		}
		fmt.Fprintln(writer)
	}
}