#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define FOR(i,a,b) for (int i=(a);i<(b);i++) #define RFOR(i,a,b) for (int i=(b)-1;i>=(a);i--) #define REP(i,n) for (int i=0;i<(n);i++) #define RREP(i,n) for (int i=(n)-1;i>=0;i--) #define inf 0x3f3f3f3f3f3f3f3f #define mp make_pair #define all(a) (a).begin(),(a).end() #define pii pair #define pcc pair #define pic pair #define pci pair #define VS vector #define VI vector #define DEBUG(x) cout<<#x<<": "<> C; int N; cin >> N; vector a(N); for (auto &aa : a) cin >> aa; vector dp(C + 1, inf); dp[0] = 0; FOR(i, 1, C+1) REP(j, N) if(i-a[j] >= 0) dp[i] = min(dp[i], dp[i - a[j]] + 1); if (dp[C] >= inf) cout << -1 << endl; else cout << dp[C] << endl; return 0; }