package main import ( "bufio" "fmt" "os" "sort" "strconv" ) func main() { // Scan開始前にSplitを設定しないとPanicになるため、ここに移動 s.Split(bufio.ScanWords) var L, N int // fmt.Scanとbufio.Scannerを混ぜるとバッファリングの問題で正しく読めないため、nextIntに統一 L = int(nextInt()) N = int(nextInt()) w := make([]int, N) for i := 0; i < N; i++ { w[i] = int(nextInt()) } sort.Sort(sort.IntSlice(w)) // fmt.Println(w) z := 0 ans := 0 for _, x := range w { z += x if z > L { break } else { ans += 1 } } fmt.Println(ans) } var s = bufio.NewScanner(os.Stdin) func next() string { // s.Split(bufio.ScanWords) // 削除: Scan後に呼ぶとPanicになるため s.Scan() return s.Text() } func nextInt() int64 { i, e := strconv.Atoi(next()) if e != nil { panic(e) } return int64(i) }