#include #include // 比較関数 (qsort 用) int compare(const void *a, const void *b) { return (*(int *)a - *(int *)b); } int main() { int L, N; // L と N の入力 scanf("%d", &L); scanf("%d", &N); int W[N]; // 各ブロックの長さを入力 for (int i = 0; i < N; i++) { scanf("%d", &W[i]); } // ブロックの長さを昇順にソート qsort(W, N, sizeof(int), compare); int cnt = 0; // ブロックを詰め込む for (int i = 0; i < N; i++) { if (L >= W[i]) { L -= W[i]; cnt++; } else { break; } } // 結果を出力 printf("%d\n", cnt); return 0; }