For problem statement at 1000-1999/1500-1599/1540-1549/1545/problemB.txt this is a correct solution, but verifier at 1000-1999/1500-1599/1540-1549/1545/verifierB.go ends with all tests passed can you fix the verifier? ```go
package main
import (
"bufio"
"fmt"
"os"
)
const MOD = 998244353
const MAX = 200005
var fact []int64
var invFact []int64
func power(a, b int64) int64 {
res := int64(1)
a %= MOD
for b > 0 {
if b%2 == 1 {
res = (res * a) % MOD
}
a = (a * a) % MOD
b /= 2
}
return res
}
func inverse(n int64) int64 {
return power(n, MOD-2)
}
func initFacts() {
fact = make([]int64, MAX)
invFact = make([]int64, MAX)
fact[0] = 1
for i := 1; i < MAX; i++ {
fact[i] = (fact[i-1] * int64(i)) % MOD
}
invFact[MAX-1] = inverse(fact[MAX-1])
for i := MAX - 2; i >= 0; i-- {
invFact[i] = (invFact[i+1] * int64(i+1)) % MOD
}
}
func nCr(n, r int) int64 {
if r < 0 || r > n {
return 0
}
return (((fact[n] * invFact[r]) % MOD) * invFact[n-r]) % MOD
}
func main() {
initFacts()
reader := bufio.NewReader(os.Stdin)
writer := bufio.NewWriter(os.Stdout)
defer writer.Flush()
var t int
fmt.Fscan(reader, &t)
for i := 0; i < t; i++ {
var n int
fmt.Fscan(reader, &n)
var s string
fmt.Fscan(reader, &s)
zeros := 0
pairs := 0
for j := 0; j < n; j++ {
if s[j] == '0' {
zeros++
} else {
if j+1 < n && s[j+1] == '1' {
pairs++
j++
}
}
}
ans := nCr(pairs+zeros, zeros)
fmt.Fprintln(writer, ans)
}
}
```