← Home
For problem statement at 1000-1999/1600-1699/1670-1679/1679/problemF.txt this is a correct solution, but verifier at 1000-1999/1600-1699/1670-1679/1679/verifierF.go ends with All tests passed can you fix the verifier? ```go
package main

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

const MOD int64 = 998244353

func main() {
	in := bufio.NewReaderSize(os.Stdin, 1<<20)

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

	var adj [10][10]bool
	for i := 0; i < m; i++ {
		var u, v int
		fmt.Fscan(in, &u, &v)
		adj[u][v] = true
		adj[v][u] = true
	}

	c := make([]int64, 11)
	for mask := 0; mask < (1 << 10); mask++ {
		ok := true
		for i := 0; i < 10 && ok; i++ {
			if (mask>>i)&1 == 0 {
				continue
			}
			for j := i + 1; j < 10; j++ {
				if (mask>>j)&1 == 1 && !adj[i][j] {
					ok = false
					break
				}
			}
		}
		if ok {
			bits := 0
			for x := mask; x > 0; x &= x - 1 {
				bits++
			}
			c[bits]++
		}
	}

	dp := make([]int64, n+1)
	dp[0] = 1
	for i := 1; i <= n; i++ {
		var val int64
		lim := 10
		if i < lim {
			lim = i
		}
		for k := 1; k <= lim; k++ {
			term := c[k] * dp[i-k] % MOD
			if k%2 == 1 {
				val += term
			} else {
				val -= term
			}
		}
		val %= MOD
		if val < 0 {
			val += MOD
		}
		dp[i] = val
	}

	out := bufio.NewWriterSize(os.Stdout, 1<<20)
	fmt.Fprintln(out, dp[n])
	out.Flush()
}
```