#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")
#include <cstdio>
#include <numeric>
#include <cmath>
#include <assert.h>
#include <deque>
#include <iostream>
#include <queue>
#include <string.h>
#include <set>
#include <algorithm>
#include <map>
#include <vector>
#include <bitset>
#include <array>
#define loop(i, n) for (int i = 0; i < n; i++)
#define testcase int _t; cin >> _t; while (_t--)
#define all(x) (x).begin(), (x).end()
using i64 = long long;
using namespace std;
void yes(bool y) {
cout << (y ? "Yes\n" : "No\n");
}
template<typename T>
ostream& operator<<(ostream& os, vector<T> const &v) {
for (T x: v) {
os << x << ' ';
}
cout << '\n';
return os;
}
template<typename T>
istream& operator>>(istream& is, vector<T> &v) {
for (T &x: v) {
is >> x;
}
return is;
}
const int maxn = 1e6;
int n, m, g, r;
vector<int> d;
bitset<int(1e4 * 2000 * 2)> vis;
inline auto idx(array<i64, 3> x) {
return x[1] * (g + r) + x[2];
}
i64 bfs() {
priority_queue< array<i64, 3> > q;
q.push({0, 0, 0});
while (!q.empty()) {
auto tup = q.top(); q.pop();
i64 &dist = tup[0];
i64 &line = tup[1];
i64 &secs = tup[2];
auto i = idx(tup);
if (vis[i]) continue;
vis[i] = 1;
if (line == m - 1) {
return dist;
}
if (secs == g) { // wait for next go
int cost = r;
array<i64, 3> nxt = {dist + cost, line, 0};
q.push(nxt);
}
if (line + 1 < m) {
int cost = d[line + 1] - d[line];
if (secs + cost <= g) {
array<i64, 3> nxt = {dist + cost, line + 1, secs + cost};
q.push(nxt);
}
}
if (line - 1 >= 0) {
int cost = d[line] - d[line - 1];
if (secs + cost <= g) {
array<i64, 3> nxt = {dist + cost, line - 1, secs + cost};
q.push(nxt);
}
}
}
return -1;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin >> n >> m;
d.resize(m);
cin >> d;
cin >> g >> r;
sort(all(d));
cout << bfs() << '\n';
}
I3ByYWdtYSBHQ0MgdGFyZ2V0ICgiYXZ4MiIpCiNwcmFnbWEgR0NDIG9wdGltaXphdGlvbiAoIk8zIikKI3ByYWdtYSBHQ0Mgb3B0aW1pemF0aW9uICgidW5yb2xsLWxvb3BzIikKI2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPG51bWVyaWM+CiNpbmNsdWRlIDxjbWF0aD4KI2luY2x1ZGUgPGFzc2VydC5oPgojaW5jbHVkZSA8ZGVxdWU+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHF1ZXVlPgojaW5jbHVkZSA8c3RyaW5nLmg+CiNpbmNsdWRlIDxzZXQ+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDxtYXA+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxiaXRzZXQ+CiNpbmNsdWRlIDxhcnJheT4KI2RlZmluZSBsb29wKGksIG4pIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKQojZGVmaW5lIHRlc3RjYXNlIGludCBfdDsgY2luID4+IF90OyB3aGlsZSAoX3QtLSkKI2RlZmluZSBhbGwoeCkgKHgpLmJlZ2luKCksICh4KS5lbmQoKQp1c2luZyBpNjQgPSBsb25nIGxvbmc7CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKdm9pZCB5ZXMoYm9vbCB5KSB7CiAgY291dCA8PCAoeSA/ICJZZXNcbiIgOiAiTm9cbiIpOwp9CiAKdGVtcGxhdGU8dHlwZW5hbWUgVD4Kb3N0cmVhbSYgb3BlcmF0b3I8PChvc3RyZWFtJiBvcywgdmVjdG9yPFQ+IGNvbnN0ICZ2KSB7CiAgZm9yIChUIHg6IHYpIHsKICAgIG9zIDw8IHggPDwgJyAnOwogIH0KICBjb3V0IDw8ICdcbic7CiAgcmV0dXJuIG9zOwp9CiAKdGVtcGxhdGU8dHlwZW5hbWUgVD4KaXN0cmVhbSYgb3BlcmF0b3I+Pihpc3RyZWFtJiBpcywgdmVjdG9yPFQ+ICZ2KSB7CiAgZm9yIChUICZ4OiB2KSB7CiAgICBpcyA+PiB4OwogIH0KICByZXR1cm4gaXM7Cn0KIApjb25zdCBpbnQgbWF4biA9IDFlNjsKIAppbnQgbiwgbSwgZywgcjsKdmVjdG9yPGludD4gZDsKYml0c2V0PGludCgxZTQgKiAyMDAwICogMik+IHZpczsKCmlubGluZSBhdXRvIGlkeChhcnJheTxpNjQsIDM+IHgpIHsKICByZXR1cm4geFsxXSAqIChnICsgcikgKyB4WzJdOwp9CgppNjQgYmZzKCkgewogIHByaW9yaXR5X3F1ZXVlPCBhcnJheTxpNjQsIDM+ID4gcTsKICBxLnB1c2goezAsIDAsIDB9KTsKICAKICB3aGlsZSAoIXEuZW1wdHkoKSkgewogICAgYXV0byB0dXAgPSBxLnRvcCgpOyBxLnBvcCgpOwogICAgaTY0ICZkaXN0ID0gdHVwWzBdOwogICAgaTY0ICZsaW5lID0gdHVwWzFdOwogICAgaTY0ICZzZWNzID0gdHVwWzJdOwogICAgYXV0byBpID0gaWR4KHR1cCk7IAoKICAgIGlmICh2aXNbaV0pIGNvbnRpbnVlOwogICAgdmlzW2ldID0gMTsKCiAgICBpZiAobGluZSA9PSBtIC0gMSkgewogICAgICByZXR1cm4gZGlzdDsKICAgIH0KIAogICAgaWYgKHNlY3MgPT0gZykgeyAvLyB3YWl0IGZvciBuZXh0IGdvCiAgICAgIGludCBjb3N0ID0gcjsKICAgICAgYXJyYXk8aTY0LCAzPiBueHQgPSB7ZGlzdCArIGNvc3QsIGxpbmUsIDB9OwogICAgICBxLnB1c2gobnh0KTsKICAgIH0KICAgIGlmIChsaW5lICsgMSA8IG0pIHsKICAgICAgaW50IGNvc3QgPSBkW2xpbmUgKyAxXSAtIGRbbGluZV07IAogICAgICBpZiAoc2VjcyArIGNvc3QgPD0gZykgewogICAgICAgIGFycmF5PGk2NCwgMz4gbnh0ID0ge2Rpc3QgKyBjb3N0LCBsaW5lICsgMSwgc2VjcyArIGNvc3R9OwogICAgICAgIHEucHVzaChueHQpOwogICAgICB9CiAgICB9CiAgICBpZiAobGluZSAtIDEgPj0gMCkgewogICAgICBpbnQgY29zdCA9IGRbbGluZV0gLSBkW2xpbmUgLSAxXTsgCiAgICAgIGlmIChzZWNzICsgY29zdCA8PSBnKSB7CiAgICAgICAgYXJyYXk8aTY0LCAzPiBueHQgPSB7ZGlzdCArIGNvc3QsIGxpbmUgLSAxLCBzZWNzICsgY29zdH07CiAgICAgICAgcS5wdXNoKG54dCk7CiAgICAgIH0KICAgIH0KICB9CiAgcmV0dXJuIC0xOwp9CiAKaW50IG1haW4oKSB7CiAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7IAogIGNpbi50aWUoTlVMTCk7CiAgY2luID4+IG4gPj4gbTsKICBkLnJlc2l6ZShtKTsKICBjaW4gPj4gZDsKICBjaW4gPj4gZyA+PiByOwogIHNvcnQoYWxsKGQpKTsKICBjb3V0IDw8IGJmcygpIDw8ICdcbic7Cn0=