#include #include #include #include #include #include #include #include #define _USE_MATH_DEFINES #include #include #include #define REP(i,n) for(int (i)=0;(i)<(n);(i)++) #define RREP(i,n) for(int (i)=(n)-1;(i)>=0;(i)--) #define debug(x) cout< P; typedef priority_queue maxpq; typedef priority_queue,greater > minpq; typedef priority_queue

p_maxpq; typedef priority_queue,greater

> p_minpq; typedef vector veci; typedef vector

vecp; typedef vector vecs; #define INF 2000000000 struct edge{int to,cost;}; int main(void) { int L,N;cin >> L >> N; minpq que; REP(i,N) { int w;cin >> w; que.push(w); } int wid = 0,ans = 0; while(!que.empty()) { int w = que.top();que.pop(); if(wid+w<=L) { wid += w; ans++; } else { break; } } cout << ans << endl; return 0; }