package main
import (
"bufio"
"fmt"
"os"
"sort"
)
type FastScanner struct {
r *bufio.Reader
}
func NewFastScanner() *FastScanner {
return &FastScanner{r: bufio.NewReaderSize(os.Stdin, 1<<20)}
}
func (fs *FastScanner) NextInt64() int64 {
sign := int64(1)
val := int64(0)
ch, _ := fs.r.ReadByte()
for (ch < '0' || ch > '9') && ch != '-' {
ch, _ = fs.r.ReadByte()
}
if ch == '-' {
sign = -1
ch, _ = fs.r.ReadByte()
}
for ch >= '0' && ch <= '9' {
val = val*10 + int64(ch-'0')
ch, _ = fs.r.ReadByte()
}
return val * sign
}
func main() {
in := NewFastScanner()
out := bufio.NewWriterSize(os.Stdout, 1<<20)
defer out.Flush()
t := int(in.NextInt64())
for ; t > 0; t-- {
n := int(in.NextInt64())
c := in.NextInt64()
b := make([]int64, n)
for i := 0; i < n; i++ {
a := in.NextInt64()
b[i] = a + int64(i+1)
}
sort.Slice(b, func(i, j int) bool { return b[i] < b[j] })
var sum int64
ans := 0
for i := 0; i < n; i++ {
if sum+b[i] <= c {
sum += b[i]
ans++
} else {
break
}
}
fmt.Fprintln(out, ans)
}
}