For problem statement at 0-999/0-99/60-69/65/problemB.txt this is a correct solution, but verifier at 0-999/0-99/60-69/65/verifierB.go ends with All tests passed can you fix the verifier? ```go
package main
import (
"bufio"
"fmt"
"os"
"sort"
"strconv"
)
func main() {
scanner := bufio.NewScanner(os.Stdin)
scanner.Scan()
n, _ := strconv.Atoi(scanner.Text())
y := make([]int, n)
for i := 0; i < n; i++ {
scanner.Scan()
temp, _ := strconv.Atoi(scanner.Text())
y[i] = temp
}
possibles := make([][]int, n)
for i := 0; i < n; i++ {
yi := y[i]
s := fmt.Sprintf("%04d", yi)
set := make(map[int]struct{})
if yi <= 2011 {
set[yi] = struct{}{}
}
for pos := 0; pos < 4; pos++ {
orig_d := int(s[pos] - '0')
for d := 0; d <= 9; d++ {
if d == orig_d {
continue
}
if pos == 0 && d == 0 {
continue
}
news := []byte(s)
news[pos] = byte('0' + d)
z, _ := strconv.Atoi(string(news))
if z >= 1000 && z <= 2011 {
set[z] = struct{}{}
}
}
}
var poss []int
for k := range set {
poss = append(poss, k)
}
sort.Ints(poss)
possibles[i] = poss
}
chosen := make([]int, n)
prev := 0
solved := true
for i := 0; i < n; i++ {
poss := possibles[i]
if len(poss) == 0 {
solved = false
break
}
idx := sort.SearchInts(poss, prev)
if idx >= len(poss) {
solved = false
break
}
chosen[i] = poss[idx]
prev = chosen[i]
}
if !solved {
fmt.Println("No solution")
} else {
for _, z := range chosen {
fmt.Println(z)
}
}
}
```