#include#include #include using namespace std; const int MMAX = 21; //最大币种数 const int NMAX = 5001; //最大面值 const int INFTY = (1 << 30); int main() { int n, m; int *c=new int[MMAX]; int *T=new int[NMAX]; int* t = new int[NMAX]; cin >> n >> m; for (int i = 1; i <= m; i++) { cin >> c[i]; } for (int i = 0; i < NMAX; i++) T[i] = INFTY; t[0]=T[0] = 0; for (int i = 1; i <= m; i++) { for (int j = 0; j + c[i] <= n; j++) { T[j + c[i]] = min(T[j + c[i]], T[j] + 1); t[j + c[i]] = max(t[j + c[i]], t[j] + 1); } } if (T[n] != INFTY) { cout << T[n] << endl; cout << t[n] << endl; } else cout << "INFTY" << endl; return 0; }



