#include <climits>
#include <iostream>
#include <vector>
using namespace std;
int l1, l2, l3, c1, c2, c3;
int way(int i){
if(i<=l1) return c1;
if(i<=l2) return c2;
if(i<=l3) return c3;
return INT_MAX;
}
int main() {
cin >> l1 >> l2 >> l3 >> c1 >> c2 >> c3;
int a, b;
cin >> a >> b;
int m = b-a;
vector<int> dp(10000);
int n;
cin >> n;
vector<int> vals(n); // 表示从第一个站到其他站的距离
for(int i=1; i<n; i++)
cin >> vals[i];
vals[0] = 0;
dp[0] = 0;
for(int i=a+1; i<=b; i++){
dp[i-a] = dp[i-a-1] + way(vals[i-1] - vals[i-2]);
for(int j=i-1; j>=a; j--){
int len = vals[i-1]-vals[j-1];
if(len <= l3)
dp[i-a] = min(dp[i-a], dp[j-a]+way(len));
}
}
cout << dp[m] << endl;
return 0;
}
// 64 位输出请用 printf("%lld")