#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")