For problem statement at 0-999/100-199/110-119/113/problemB.txt this is a correct solution, but verifier at 0-999/100-199/110-119/113/verifierB.go ends with All tests passed can you fix the verifier? ```go
package main
import (
"fmt"
"io"
"os"
"strings"
)
func main() {
input, _ := io.ReadAll(os.Stdin)
lines := strings.Fields(string(input))
if len(lines) < 3 {
fmt.Println(0)
return
}
t := lines[0]
s1 := lines[1]
s2 := lines[2]
n := len(t)
starts := make([]int, 0)
for i := 0; i <= n-len(s1); i++ {
if t[i:i+len(s1)] == s1 {
starts = append(starts, i)
}
}
ends := make([]int, 0)
for i := 0; i <= n-len(s2); i++ {
if t[i:i+len(s2)] == s2 {
ends = append(ends, i)
}
}
if len(starts) == 0 || len(ends) == 0 {
fmt.Println(0)
return
}
const m1 = 1000000007
const m2 = 1000000009
const b1 = 313
const b2 = 317
h1 := make([]uint64, n+1)
h2 := make([]uint64, n+1)
p1 := make([]uint64, n+1)
p2 := make([]uint64, n+1)
p1[0] = 1
p2[0] = 1
for i := 0; i < n; i++ {
h1[i+1] = (h1[i]*b1 + uint64(t[i])) % m1
h2[i+1] = (h2[i]*b2 + uint64(t[i])) % m2
p1[i+1] = (p1[i] * b1) % m1
p2[i+1] = (p2[i] * b2) % m2
}
type Hash struct {
a, b uint64
}
seen := make(map[Hash]struct{})
for _, i := range starts {
for _, j := range ends {
if j >= i && j+len(s2) >= i+len(s1) {
length := j + len(s2) - i
v1 := (h1[i+length] + m1 - (h1[i]*p1[length])%m1) % m1
v2 := (h2[i+length] + m2 - (h2[i]*p2[length])%m2) % m2
seen[Hash{v1, v2}] = struct{}{}
}
}
}
fmt.Println(len(seen))
}
```