#include //#include #include using namespace std; int main() { int max; int n; cin >> max; cin >> n; //list blocks; set blocks; for ( auto i = 0; i < n; i++ ) { int x; cin >> x; //list::iterator it; //for ( it = blocks.begin(); it != blocks.end() && *it < x; ++it ) { // // itを取得したいだけなので何もしない //} //blocks.insert(it, x); blocks.insert(x); } // maxを超えないブロック数を小さい順から数えればOKなはず int count = 0; int t = 0; for ( auto block : blocks ) { if ( t + block > max ) { break; } count++; t += block; } cout << count << endl; }