#include <bits/stdc++.h>
using namespace std;
int n[3], t[3];
vector<int> q[3];
int p[3];
int T = 0;
int at(int i, int k) {
  if (q[i].size() < k) return 0;
  return q[i][q[i].size() - k];
}
int next(int i) { return at(i, n[i]); }
int wash() { return max(max(next(0), next(1) - t[0]), next(2) - t[0] - t[1]); }
int k;
int main() {
  cin >> k;
  for (int i = 0; i < 3; i++) cin >> n[i];
  for (int i = 0; i < 3; i++) cin >> t[i];
  while (1) {
    if (wash() == T) {
      k--;
      q[0].push_back(T + t[0]);
      q[1].push_back(T + t[0] + t[1]);
      q[2].push_back(T + t[0] + t[1] + t[2]);
      T--;
    }
    if (k == 0) break;
    T++;
  }
  cout << q[2].back() << endl;
  return 0;
}
