#include #include int cmp(const void* n1, const void* n2) { if (*(int*)n1 > *(int*)n2) { return 1; } else if (*(int*)n1 < *(int*)n2) { return -1; } else { return 0; } } int main() { int N, M; scanf("%d%d", &N, &M); int* C; C = (int*)malloc(sizeof(int) * N); for (int i = 0; i < N; i++) { scanf("%d", &C[i]); } qsort(C, N, sizeof(int), cmp); int count = 0; while (count < N) { if (C[count] > M) { break; } M = M - C[count]; count++; } printf("%d",count); return 0; }