#include <bits/stdc++.h>
using namespace std;
const double pi = acos(-1.0);
int n;
long long come[4][111000];
int k[3], t[3];
int main() {
  for (int i = 0, _n = (3); i < _n; i++) scanf("%d", k + i);
  for (int i = 0, _n = (3); i < _n; i++) scanf("%d", t + i);
  scanf("%d", &n);
  for (int i = 0, _n = (n); i < _n; i++) {
    int q;
    scanf("%d", &q);
    come[0][i] = q;
  }
  for (int s = 0, _n = (3); s < _n; s++) {
    multiset<long long> fr;
    for (int i = 0, _n = (n); i < _n; i++) {
      long long w = 0;
      if ((int)(fr).size() == k[s]) {
        w = *fr.begin();
        fr.erase(fr.begin());
      }
      w = max(w, come[s][i]) + t[s];
      come[s + 1][i] = w;
      fr.insert(w);
    }
  }
  long long res = 0;
  for (int i = 0, _n = (n); i < _n; i++)
    res = max(come[3][i] - come[0][i], res);
  cout << res << endl;
  return 0;
}
