#include <bits/stdc++.h>   using namespace std;   const int N = 840;   long long cnt[10];   long long f[10][N];   int main() {     long long w;     cin >> w;     for (int i = 1; i <= 8; i++) cin >> cnt[i];     memset(f, 0xcf, sizeof f);     f[0][0] = 0;     long long res = 0;     for (int i = 1; i <= 8; i++) {       for (int j = 0; j < 840 / i && j <= cnt[i]; j++) {         for (int k = 0; k < 840; k++) {           int a = (k + j * i) / 840;           int b = (k + j * i) % 840;           f[i][b] = max(f[i][b], f[i - 1][k] + a + (cnt[i] - j) * i / 840);           if (b <= w) res = max(res, min(f[i][b], (w - b) / 840) * 840 + b);         }       }     }     cout << res << endl;     return 0;   }   