package main import . "fmt" func main() { var n int Scan(&n) a := make([]int, n) for i := range a { Scan(&a[i]) } b := make([]int, n) x := make([]bool, n) for i := range b { var s string Scan(&s) Sscan(s, &b[i]) x[i] = Sprint(b[i]) != s } dp := make([][][]int, 9+1) for i := range dp { dp[i] = make([][]int, 4+1) for j := range dp[i] { dp[i][j] = make([]int, 33+1) } } for i, xv := range x { if !xv || b[i] != 0 { continue } dp[1][a[i]][b[i]]++ } const MOD = 998244353 for p, av := range a { if x[p] { continue } bv := b[p] for i := 8; i >= 1; i-- { for j := 0; av+j <= 4; j++ { for k := 0; bv+k <= 33; k++ { dp[i+1][av+j][bv+k] = (dp[i+1][av+j][bv+k]+dp[i][j][k])%MOD } } } } Println(dp[9][4][33]) }