#include <iostream>
#include <vector>
using namespace std;

int main() {
  int m, n;
  cin >> m >> n;
  vector<int> nums(n);
  for(int i=0; i<n; i++){
    cin >> nums[i];
  }
    vector<int> dp(m+1);    //在容量为j的情况下最少需要多少个
     for(int i=0; i<n; i++){
        for(int j=m; j>=nums[i]; j--){
              if(nums[i]==j)
                dp[j] = 1;
            else if(dp[j-nums[i]]!=0 && dp[j]==0)
                dp[j] = dp[j-nums[i]]+1;
            else if(dp[j-nums[i]]!=0 && dp[j]!=0)
                dp[j] = min(dp[j-nums[i]]+1,dp[j]);
        }
    }

    cout << dp[m] << endl;

}
// 64 位输出请用 printf("%lld")