#include <iostream> using namespace std; int post[50]; int dp[20][105]; int main() { int M,N; while(cin>>M>>N){ for(int i=1;i<=N;i++){ cin>>post[i]; } for(int i=0;i<=N;i++){ dp[i][0] = 0; } for(int j=0;j<=M;j++){ dp[0][j] = 10000000; } for(int i=1;i<=N;i++){ for(int j=1;j<=M;j++){ if(j<post[i]){ dp[i][j] = dp[i-1][j]; }else{ dp[i][j] = min(dp[i-1][j],dp[i-1][j-post[i]]+1); } } } if(dp[N][M]==10000000){ cout<<0<<endl; }else{ cout<<dp[N][M]<<endl; } } }