#include<stdio.h> #include<math.h> #define MaxSize 100 int main() { int i, j, A[MaxSize] = {0}, B[MaxSize] = {0}, m, n, p, sum, cnt, min = 999; for (i = 0; i < MaxSize; i++)A[i] = B[i] = 0; scanf("%d %d", &m, &n); for (i = 0; i < n; i++)scanf("%d", &B[i]); p = pow(2, n); for (i = 0; i < p; i++) { sum = 0; cnt = 0; for (j = 0; j < n; j++)A[j] = 0; A[n - 1] = i; for (j = n - 1; j > 0; j--) { if (A[j] >= 2) { A[j - 1] += A[j] / 2; A[j] = A[j] % 2; } } //for(j=0;j<n;j++)printf("%d",A[j]); //for(j=0;j<n;j++)A[j]=0; for (j = 0; j < n; j++) { if (A[j] == 1) { sum += B[j]; cnt++; } } if (sum == m) { if (min > cnt)min = cnt; } } if (min == 999)min = 0; printf("%d", min); }