#include #include void sort(std::vector &vector, const int &left, const int &right) { if (left < right) { auto l = left, r = right, pivot = vector.at(left + (right - left) / 2); while (l < r) { while (vector.at(l) < pivot)++l; while (vector.at(r) > pivot)--r; if (l < r) { auto temp = vector.at(l); vector.at(l) = vector.at(r), vector.at(r) = temp; ++l; --r; } } sort(vector, left, r), sort(vector, r + 1, right); } } int main() { int l, n; std::cin >> l >> n; std::vector block(n); for (auto &b : block) { int w; std::cin >> w; b = w; } sort(block, 0, n - 1); int i = 0, sum = 0; for (; sum <= l && i < n; sum += block.at(i++)){ } if (sum > l) { std::cout << i - 1 << std::endl; } else { std::cout << i << std::endl; } }