For problem statement at 0-999/700-799/750-759/754/problemD.txt this is a correct solution, but verifier at 0-999/700-799/750-759/754/verifierD.go ends with All tests passed can you fix the verifier? ```go
package main
import (
"bufio"
"container/heap"
"fmt"
"os"
"sort"
)
type Interval struct {
l, r int
idx int
}
type Item struct {
r int
idx int
}
type MinHeap []Item
func (h MinHeap) Len() int { return len(h) }
func (h MinHeap) Less(i, j int) bool { return h[i].r < h[j].r }
func (h MinHeap) Swap(i, j int) { h[i], h[j] = h[j], h[i] }
func (h *MinHeap) Push(x interface{}) {
*h = append(*h, x.(Item))
}
func (h *MinHeap) Pop() interface{} {
old := *h
n := len(old)
x := old[n-1]
*h = old[0 : n-1]
return x
}
func main() {
r := bufio.NewReader(os.Stdin)
w := bufio.NewWriter(os.Stdout)
defer w.Flush()
var n, k int
fmt.Fscan(r, &n, &k)
intervals := make([]Interval, n)
for i := 0; i < n; i++ {
fmt.Fscan(r, &intervals[i].l, &intervals[i].r)
intervals[i].idx = i + 1
}
sort.Slice(intervals, func(i, j int) bool {
if intervals[i].l == intervals[j].l {
return intervals[i].r < intervals[j].r
}
return intervals[i].l < intervals[j].l
})
h := &MinHeap{}
heap.Init(h)
bestLen := 0
bestIdx := -1
for i := 0; i < n; i++ {
heap.Push(h, Item{r: intervals[i].r, idx: intervals[i].idx})
if h.Len() > k {
heap.Pop(h)
}
if h.Len() == k {
minR := (*h)[0].r
curLen := minR - intervals[i].l + 1
if curLen > bestLen {
bestLen = curLen
bestIdx = i
}
}
}
if bestIdx == -1 {
fmt.Fprintln(w, 0)
for i := 1; i <= k; i++ {
if i > 1 {
fmt.Fprint(w, " ")
}
fmt.Fprint(w, i)
}
fmt.Fprintln(w)
return
}
fmt.Fprintln(w, bestLen)
candidates := make([]Interval, 0, bestIdx+1)
for i := 0; i <= bestIdx; i++ {
candidates = append(candidates, intervals[i])
}
sort.Slice(candidates, func(i, j int) bool {
return candidates[i].r > candidates[j].r
})
for i := 0; i < k; i++ {
if i > 0 {
fmt.Fprint(w, " ")
}
fmt.Fprint(w, candidates[i].idx)
}
fmt.Fprintln(w)
}
```