// let L, N, W; // process.stdin.resume(); process.stdin.setEncoding('utf8'); process.stdin.on('data', data => { const arr = data.split('\n'); L = Number(arr[0]); N = Number(arr[1]); W = arr[2].split(' ').map(x => Number(x)); }); process.stdin.on('end', () => { const dp = new Array(N + 1); for (let i = 0; i < dp.length; i++) { dp[i] = new Array(L + 1).fill(0); } for (let i = 0; i < N; i++) { for (let j = 0; j <= L; j++) { if (j < W[i]) { dp[i + 1][j] = dp[i][j]; } else { dp[i + 1][j] = Math.max(dp[i][j], dp[i][j - W[i]] + 1); } } } console.log(Math.max(dp[N][L])); });