#include<bits/stdc++.h> using namespace std; int n,m,a[200],s,ans; bool cmp(int x,int y){ // if(x>y)return true; // else return false; return x>y; } int main(){ cin>>m>>n; // n个师傅 // m个零件 for(int i=1;i<=n;i++) { cin>>a[i]; s=s+a[i]; } if(s<m) cout<<"NO"; else{ sort(a+1,a+1+n,cmp); //sort 分类 快速排序 ,开始,结束,条件,按什么要求进行从小到大或从大到小排序 for(int i=1;i<=n;i++){ ans=ans+a[i]; if(ans>=m){ cout<<i; break; } } } // for(int i=1;i<=n;i++) cout<<a[i]<<" "; // 第一件事情:判断如果安排所有的师傅都参与加工也不能在一天内完成任务, // 请输出“NO” // 第二件事情:如果可以完成,要求最少个师傅,优先请加工多的师傅 return 0; } /************************************************************** Problem: 1326 User: hulaoshi Language: C++ Result: Accepted Time:31 ms Memory:2076 kb ****************************************************************/