For problem statement at 0-999/500-599/580-589/582/problemB.txt this is a correct solution, but verifier at 0-999/500-599/580-589/582/verifierB.go ends with All tests passed can you fix the verifier? ```go
package main
import "fmt"
const m = 300
const inf = -1000000000
func multiply(a, b [m + 1][m + 1]int) [m + 1][m + 1]int {
var c [m + 1][m + 1]int
for i := 1; i <= m; i++ {
for j := 1; j <= i; j++ {
maxVal := inf
for k := j; k <= i; k++ {
if a[i][k] != inf && b[k][j] != inf {
val := a[i][k] + b[k][j]
if val > maxVal {
maxVal = val
}
}
}
c[i][j] = maxVal
}
}
return c
}
func main() {
var n, T int
fmt.Scan(&n, &T)
a := make([]int, n)
for i := 0; i < n; i++ {
fmt.Scan(&a[i])
}
var mat [m + 1][m + 1]int
for i := 1; i <= m; i++ {
for j := 1; j <= m; j++ {
mat[i][j] = inf
}
mat[i][i] = 0
}
for _, x := range a {
row := make([]int, x+1)
for j := 1; j <= x; j++ {
row[j] = mat[x][j]
}
for i := x; i <= m; i++ {
for j := 1; j <= x; j++ {
if row[j] != inf {
val := 1 + row[j]
if val > mat[i][j] {
mat[i][j] = val
}
}
}
}
}
var result [m + 1][m + 1]int
for i := 1; i <= m; i++ {
for j := 1; j <= m; j++ {
result[i][j] = inf
}
result[i][i] = 0
}
t := T
for t > 0 {
if t&1 == 1 {
result = multiply(mat, result)
}
mat = multiply(mat, mat)
t >>= 1
}
ans := 0
for j := 1; j <= m; j++ {
if result[m][j] > ans {
ans = result[m][j]
}
}
fmt.Println(ans)
}
```