For problem statement at 0-999/300-399/360-369/366/problemE.txt this is a correct solution, but verifier at 0-999/300-399/360-369/366/verifierE.go ends with All tests passed can you fix the verifier? ```go
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
in := bufio.NewReader(os.Stdin)
out := bufio.NewWriter(os.Stdout)
defer out.Flush()
var n, m, k, s int
fmt.Fscan(in, &n, &m, &k, &s)
const INF = 1 << 30
minPlus := make([]int, k+1)
maxPlus := make([]int, k+1)
minMinus := make([]int, k+1)
maxMinus := make([]int, k+1)
for i := 1; i <= k; i++ {
minPlus[i] = INF
maxPlus[i] = -INF
minMinus[i] = INF
maxMinus[i] = -INF
}
for i := 1; i <= n; i++ {
for j := 1; j <= m; j++ {
var val int
fmt.Fscan(in, &val)
plus := i + j
minus := i - j
if plus < minPlus[val] {
minPlus[val] = plus
}
if plus > maxPlus[val] {
maxPlus[val] = plus
}
if minus < minMinus[val] {
minMinus[val] = minus
}
if minus > maxMinus[val] {
maxMinus[val] = minus
}
}
}
maxDist := make([][]int, k+1)
for i := range maxDist {
maxDist[i] = make([]int, k+1)
}
for u := 1; u <= k; u++ {
for v := 1; v <= k; v++ {
d1 := maxPlus[u] - minPlus[v]
d2 := maxPlus[v] - minPlus[u]
d3 := maxMinus[u] - minMinus[v]
d4 := maxMinus[v] - minMinus[u]
maxDist[u][v] = max(d1, max(d2, max(d3, d4)))
}
}
ans := 0
prev := 0
for i := 0; i < s; i++ {
var curr int
fmt.Fscan(in, &curr)
if i > 0 {
if d := maxDist[prev][curr]; d > ans {
ans = d
}
}
prev = curr
}
fmt.Fprintln(out, ans)
}
func max(a, b int) int {
if a > b {
return a
}
return b
}
```