package main import ( "bufio" "fmt" "os" "sort" "strconv" "strings" ) var reader = bufio.NewReaderSize(os.Stdin, 1000000) func main() { boxWidth := newInt() boxNumber := newInt() line := readLine() strs := strings.Split(line, " ") ary := make([]int, boxNumber) for i := range strs { ary[i], _ = strconv.Atoi(strs[i]) } sort.Sort(sort.IntSlice(ary)) sum := 0 index := 0 for i, v := range ary { sum += v if boxWidth < sum { index = i break } } if index == 0 { fmt.Println(len(ary)) } else { fmt.Println(index) } } func readLine() string { buf := make([]byte, 0, 1000000) for { l, p, e := reader.ReadLine() if e != nil { panic(e) } buf = append(buf, l...) if !p { break } } return string(buf) } func newInt() int { line, e := reader.ReadString('\n') if e != nil { panic(e) } line = strings.TrimRight(line, "\r\n") i, e := strconv.ParseInt(line, 10, 0) if e != nil { panic(e) } return int(i) }