#include <bits/stdc++.h>
using namespace std;
const int MOD(1000000007);
const int INF((1 << 30) - 1);
const int MAXN(100005);
long long a[MAXN];
multiset<long long> s;
multiset<long long>::iterator it;
long long ans[4][MAXN] = {0};
int main() {
  long long k[3], t[3];
  for (int i = 0; i < 3; i++) cin >> k[i];
  for (int i = 0; i < 3; i++) cin >> t[i];
  int n;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    cin >> a[i];
    ans[0][i] = a[i];
  }
  for (int i = 0; i < 3; i++) {
    s.clear();
    if (k[i] > n) k[i] = n;
    for (int j = 0; j < k[i]; j++) s.insert(0);
    for (int j = 0; j < n; j++) {
      it = s.begin();
      long long tmp = *it;
      ans[i + 1][j] = max(ans[i][j], tmp) + t[i];
      s.erase(it);
      s.insert(ans[i + 1][j]);
    }
  }
  long long MAX = 0;
  for (int i = 0; i < n; i++) MAX = max(MAX, ans[3][i] - ans[0][i]);
  cout << MAX;
}
