#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifndef MYDEBUG #define err(...) #define errs(...) #define NO_CP(a) #define MY_ASSERT(a) #endif using namespace std; void Calc(); #define PI 3.14159265358979323846 #define ALL(a) (a).begin(),(a).end() #define RALL(a) (a).rbegin(),(a).rend() typedef long long ll; typedef unsigned long long ull; int main() { cin.tie(0); ios::sync_with_stdio(false); cout.setf(ios::fixed, ios::floatfield); cout.precision(15); Calc(); cout.flush(); return 0; } struct Scanner { NO_CP(Scanner); templatestatic A Next() { A a; cin >> a; MY_ASSERT(cin); return a; } static string Line() { string s; getline(cin, s); MY_ASSERT(cin); return s; } templatestatic vector Array(int n) { vector a(n); for (A& i : a) i = Next(); return a; } static int Int() { return Next(); } template Scanner& operator>>(A &a) { a = Next(); return *this; } template operator A() { return Next(); } }; template<> bool Scanner::Next() { return !!cin; } namespace out { template void Out(A b, A e, const char *between = " ") { if (b != e)while (cout << *b, ++b != e) cout << between; } templatevoid Outs(const T &t) { cout << t; } templatevoid Outs(const T& t, const Args&... args) { cout << t << ' '; Outs(args...); } } /*---------------------------------------------------------------------*/ void Calc() { Scanner cin; int l = cin; int n = cin; auto w = cin.Array(n); sort(ALL(w)); int cnt = 0; int num = 0; for (auto& i : w) { cnt += i; if (cnt <= l)num++; else break; } cout << num << endl; }