← Home
package main

import (
	"fmt"
)

func main() {
	var n, m int
	if _, err := fmt.Scan(&n, &m); err != nil {
		return
	}

	matrix := make([][]bool, 10)
	for i := range matrix {
		matrix[i] = make([]bool, 10)
	}

	for i := 0; i < m; i++ {
		var u, v int
		fmt.Scan(&u, &v)
		matrix[u][v] = true
		matrix[v][u] = true
	}

	c := make([]int, 11)
	for mask := 0; mask < 1024; mask++ {
		isClique := true
		for i := 0; i < 10; i++ {
			if (mask & (1 << i)) != 0 {
				for j := i + 1; j < 10; j++ {
					if (mask & (1 << j)) != 0 {
						if !matrix[i][j] {
							isClique = false
							break
						}
					}
				}
				if !isClique {
					break
				}
			}
		}
		if isClique {
			bits := 0
			for i := 0; i < 10; i++ {
				if (mask & (1 << i)) != 0 {
					bits++
				}
			}
			c[bits]++
		}
	}

	MOD := int64(998244353)
	a := make([]int64, 11)
	a[0] = 1

	for i := 1; i <= n; i++ {
		var sum int64 = 0
		for k := 1; k <= 10; k++ {
			if i-k >= 0 {
				term := (int64(c[k]) * a[(i-k)%11]) % MOD
				if k%2 == 1 {
					sum = (sum + term) % MOD
				} else {
					sum = (sum - term + MOD) % MOD
				}
			}
		}
		a[i%11] = sum
	}

	fmt.Println(a[n%11])
}