← Home
```go
package main

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

func main() {
	in := bufio.NewReaderSize(os.Stdin, 1<<20)
	out := bufio.NewWriterSize(os.Stdout, 1<<20)
	defer out.Flush()

	var n, m int
	fmt.Fscan(in, &n, &m)

	state := make([]int8, n+1)

	for i := 0; i < m; i++ {
		var k int
		fmt.Fscan(in, &k)
		touched := make([]int, 0, k)
		conflict := false

		for j := 0; j < k; j++ {
			var v int
			fmt.Fscan(in, &v)
			u := v
			s := int8(1)
			if v < 0 {
				u = -v
				s = -1
			}
			if state[u] == 0 {
				state[u] = s
				touched = append(touched, u)
			} else if state[u] != s {
				conflict = true
			}
		}

		if !conflict {
			fmt.Fprint(out, "YES")
			return
		}

		for _, u := range touched {
			state[u] = 0
		}
	}

	fmt.Fprint(out, "NO")
}
```