```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")
}
```