#include #include #include #include #include #include #include #include #include #include #include using namespace std; using Graph = vector>; using ll = long long; typedef pair P_ll; typedef pair P; const ll INF_ll = 1e17; const int INF = 1e8; template bool chmax(T& a, const T& b) { if (a < b) { a = b; return 1; } return 0; } template bool chmin(T& a, const T& b) { if (b < a) { a = b; return 1; } return 0; } template using min_priority_queue = priority_queue, greater>; int main() { ll L, N; cin >> L >> N; vector W(N); for (int i = 0; i < N; i++) { cin >> W[i]; } sort(W.begin(), W.end()); for (int i = 0; i < N; i++) { if (W[i] <= L) { L -= W[i]; } else { cout << i << endl; return 0; } } cout << N << endl; return 0; }