package main
import (
"bufio"
"fmt"
"os"
"sort"
)
func main() {
var n int
var h int64
r := bufio.NewReader(os.Stdin)
fmt.Fscan(r, &n, &h)
a := make([]int64, n)
for i := range a {
fmt.Fscan(r, &a[i])
}
l, r_b, ans := 1, n, 1
for l <= r_b {
m := (l + r_b) / 2
b := make([]int64, m)
copy(b, a[:m])
sort.Slice(b, func(i, j int) bool { return b[i] > b[j] })
var sum int64
for i := 0; i < m; i += 2 {
sum += b[i]
}
if sum <= h {
ans = m
l = m + 1
} else {
r_b = m - 1
}
}
fmt.Println(ans)
}