#include <bits/stdc++.h>
using namespace std;
const int nmax = 1000 + 18;
int q1[nmax], q2[nmax], q3[nmax], e1, e2, e3, b1, b2, b3;
int t1, t2, t3;
int n1, n2, n3;
int k;
int T, ans;
int N1, N2, N3;
int ne1(int &a) {
  ++a;
  if (a > N1) a = 1;
  return a;
}
int ne2(int &a) {
  ++a;
  if (a > N2) a = 1;
  return a;
}
int ne3(int &a) {
  ++a;
  if (a > N3) a = 1;
  return a;
}
int main() {
  scanf("%d%d%d%d%d%d%d", &k, &n1, &n2, &n3, &t1, &t2, &t3);
  N1 = n1;
  N2 = n2;
  N3 = n3;
  b1 = b2 = b3 = 1;
  while (k) {
    if (n1 && n2 && n3) {
      q1[ne1(e1)] = t1 + T;
      q2[ne2(e2)] = t2 + T;
      q3[ne3(e3)] = t3 + T;
      ans = T + t1 + t2 + t3;
      --n1, --n2, --n3;
      --k;
    } else if (n1 < N1 && (n2 == N2 || q1[b1] <= q2[b2]) &&
               (n3 == N3 || q1[b1] <= q3[b3])) {
      T = q1[b1];
      ++n1;
      ne1(b1);
    } else if (n2 < N2 && (N1 == n1 || q2[b2] <= q1[b1]) &&
               (n3 == N3 || q2[b2] <= q3[b3])) {
      T = q2[b2];
      ++n2;
      ne2(b2);
    } else if (n3 < N3 && (n1 == N1 || q3[b3] <= q1[b1]) &&
               (n2 == N2 || q3[b3] <= q2[b2])) {
      T = q3[b3];
      ++n3;
      ne3(b3);
    }
  }
  printf("%d\n", ans);
  return 0;
}
