For problem statement at 0-999/500-599/550-559/551/problemB.txt this is a correct solution, but verifier at 0-999/500-599/550-559/551/verifierB.go ends with All 102 tests passed can you fix the verifier? ```go
package main
import (
"bufio"
"fmt"
"os"
"strings"
)
func main() {
reader := bufio.NewReader(os.Stdin)
a, _ := reader.ReadString('\n')
b, _ := reader.ReadString('\n')
c, _ := reader.ReadString('\n')
a = strings.TrimSpace(a)
b = strings.TrimSpace(b)
c = strings.TrimSpace(c)
cntA := [26]int{}
cntB := [26]int{}
cntC := [26]int{}
for _, ch := range a {
cntA[ch-'a']++
}
for _, ch := range b {
cntB[ch-'a']++
}
for _, ch := range c {
cntC[ch-'a']++
}
maxB := len(a)
for i := 0; i < 26; i++ {
if cntB[i] > 0 {
if cntA[i]/cntB[i] < maxB {
maxB = cntA[i] / cntB[i]
}
}
}
bestSum := 0
bestI := 0
bestJ := 0
for i := 0; i <= maxB; i++ {
rem := [26]int{}
valid := true
for j := 0; j < 26; j++ {
rem[j] = cntA[j] - i*cntB[j]
if rem[j] < 0 {
valid = false
break
}
}
if !valid {
continue
}
maxC := len(a)
for j := 0; j < 26; j++ {
if cntC[j] > 0 {
if rem[j]/cntC[j] < maxC {
maxC = rem[j] / cntC[j]
}
}
}
if i+maxC > bestSum {
bestSum = i + maxC
bestI = i
bestJ = maxC
}
}
var res strings.Builder
res.Grow(len(a))
for i := 0; i < bestI; i++ {
res.WriteString(b)
}
for j := 0; j < bestJ; j++ {
res.WriteString(c)
}
for i := 0; i < 26; i++ {
cnt := cntA[i] - bestI*cntB[i] - bestJ*cntC[i]
for k := 0; k < cnt; k++ {
res.WriteByte(byte('a' + i))
}
}
fmt.Println(res.String())
}
```