#include <bits/stdc++.h>
using namespace std;
long long cnt[9];
bitset<840> vis;
int main() {
  long long w;
  scanf("%I64d", &w);
  long long sum = 0;
  for (int i = 1; i <= 8; i++) scanf("%I64d", &cnt[i]), sum += cnt[i] * i;
  if (sum <= w) {
    cout << sum << endl;
    return 0;
  }
  vis.reset();
  vis[0] = 1;
  for (long long i = 1; i <= 8; i++) {
    for (int j = 0; j < min(840 / i, cnt[i]); j++) vis |= (vis << i);
  }
  long long ans = 0;
  for (int x = 0; x < 840; x++) {
    if (vis[x]) {
      long long mod = (sum - x) % 840;
      ans = max(ans, w - ((w - mod) % 840 + 840) % 840);
    }
  }
  cout << ans << endl;
}
