#include <bits/stdc++.h>
#define FstIO ios::sync_with_stdio(0), cin.tie(0), cout.tie(0)
#define pii pair <ll, ll>
#define pb push_back
#define mem(a, v) memset(a, v, sizeof a)
using namespace std;
using ll = long long;
using ull = unsigned long long;
using ld = long double;
const ll N = 5e5 + 2, M = 2e3 + 5;
const ll inf = 1e18, mod = 1e9 + 7;
const ld eps = 1e-6;
ll n, m, k;
ll A, B, C, T;
ll S[N], R[N];
bool pp(ll x, ll y) { return x > y; }
priority_queue <pii> heap;
void sol(ll i)
{
ll left = T - (S[i] - 1) * B - (R[i] - S[i]) * C;
if (left <= 0) return ;
ll val = left / A, copy = R[i];
R[i] = min(R[i] + val, S[i + 1] - 1);
heap.push({R[i] - copy, i});
}
signed main()
{
FstIO;
cin >> n >> m >> k;
cin >> A >> B >> C >> T;
for (ll i = 1; i <= m; ++ i ) cin >> S[i];
ll t = 0; t += (m - 1);
k -= m;
for (ll i = 1; i < m; ++ i )
{
if ((S[i] - 1) * B > T) break;
if (!(S[i + 1] - S[i] - 1)) continue;
if ((S[i] - 1) * B + (S[i + 1] - S[i]) * A <= T)
t += (S[i + 1] - S[i] - 1);
else
{
ll left = T - (S[i] - 1) * B;
ll val = left / A;
R[i] = S[i] + val;
t += R[i] - S[i];
sol(i);
}
}
for (ll i = 1; i <= k; ++ i )
{
if (heap.empty()) break;
auto tp = heap.top(); heap.pop();
t += tp.first;
sol(tp.second);
}
cout << t << '\n';
return 0;
cout.flush();
}