For problem statement at 0-999/600-699/600-609/601/problemB.txt this is a correct solution, but verifier at 0-999/600-699/600-609/601/verifierB.go ends with All tests passed can you fix the verifier? ```go
package main
import (
"bufio"
"io"
"os"
"strconv"
)
func main() {
data, _ := io.ReadAll(os.Stdin)
idx := 0
nextInt := func() int {
for idx < len(data) && (data[idx] < '0' || data[idx] > '9') && data[idx] != '-' {
idx++
}
sign := 1
if data[idx] == '-' {
sign = -1
idx++
}
val := 0
for idx < len(data) && data[idx] >= '0' && data[idx] <= '9' {
val = val*10 + int(data[idx]-'0')
idx++
}
return sign * val
}
n := nextInt()
q := nextInt()
a := make([]int64, n)
for i := 0; i < n; i++ {
a[i] = int64(nextInt())
}
b := make([]int64, n-1)
for i := 0; i < n-1; i++ {
d := a[i+1] - a[i]
if d < 0 {
d = -d
}
b[i] = d
}
prev := make([]int, n-1)
next := make([]int, n-1)
stack := make([]int, 0, n-1)
out := bufio.NewWriterSize(os.Stdout, 1<<20)
defer out.Flush()
for ; q > 0; q-- {
l := nextInt() - 1
r := nextInt() - 1
m := r - l
stack = stack[:0]
for i := 0; i < m; i++ {
v := b[l+i]
for len(stack) > 0 && b[l+stack[len(stack)-1]] <= v {
stack = stack[:len(stack)-1]
}
if len(stack) == 0 {
prev[i] = -1
} else {
prev[i] = stack[len(stack)-1]
}
stack = append(stack, i)
}
stack = stack[:0]
for i := m - 1; i >= 0; i-- {
v := b[l+i]
for len(stack) > 0 && b[l+stack[len(stack)-1]] < v {
stack = stack[:len(stack)-1]
}
if len(stack) == 0 {
next[i] = m
} else {
next[i] = stack[len(stack)-1]
}
stack = append(stack, i)
}
var ans int64
for i := 0; i < m; i++ {
ans += b[l+i] * int64(i-prev[i]) * int64(next[i]-i)
}
out.WriteString(strconv.FormatInt(ans, 10))
out.WriteByte('\n')
}
}
```