#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define fi first
#define se second
typedef pair<ll, ll> pii;
typedef pair<pii, pii> rect;
const int MAXN = 2e5+5, LOG = 19;
const int MOD = 998244353;
ll N, M, K, T, P, Q, A, B, C, D, ans;
ll d[MAXN];
vector<pii> adj[MAXN];
vector <int> ins[MAXN], era[MAXN];
int main () {
cin >> N >> M >> K >> T >> P >> Q;
ans=C=D=1e18;
// express
for(int i=1; i<=M; i++){
cin >> A >> B >> C >> D;
adj[A].push_back({B, D});
adj[B].push_back({A, D});
ins[A].push_back(C);
era[B].push_back(C);
}
// komuter
multiset <ll> ms;
for (int i =1; i < N; i++){
for (auto c : ins[i]) ms.insert(c);
for (auto c : era[i]) ms.erase(ms.find(c));
//insert erase
if(ms.empty()) continue;
adj[i].push_back({i+1, *ms.begin()});
adj[i+1].push_back({i, *ms.begin()});
}
// biaya keluar masuk
for(int i=1; i<=N; i++){
adj[i+N].push_back({i, T});
adj[i].push_back({i+N, 0});
}
for(int i=1; i<N; i++){
adj[i+N].push_back({i+N+1, K});
adj[i+N+1].push_back({i+N, K});
}
for(int i=1; i<=N*2; i++){
d[i] = 1e18;
}
priority_queue<pii, vector<pii>, greater<pii>> pq;
pq.push({0, P+N});
d[P+N] = 0;
while(!pq.empty()){
auto[dist, cur] = pq.top();
pq.pop();
if(cur==Q or cur == N+Q){
ans = min(ans, dist);
cout << ans << "\n";
return 0;
}
if (d[cur] != dist) continue;
for(auto[nx, w] : adj[cur]){
if (w+dist < d[nx]) {
d[nx] = w+dist;
pq.push({w+dist, nx});
}
}
}
cout << ans << "\n";
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnR5cGVkZWYgbG9uZyBsb25nIGxsOwojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCnR5cGVkZWYgcGFpcjxsbCwgbGw+IHBpaTsKdHlwZWRlZiBwYWlyPHBpaSwgcGlpPiByZWN0OwoKY29uc3QgaW50IE1BWE4gPSAyZTUrNSwgTE9HID0gMTk7CmNvbnN0IGludCBNT0QgPSA5OTgyNDQzNTM7CgpsbCBOLCBNLCBLLCBULCBQLCBRLCBBLCBCLCBDLCBELCBhbnM7CmxsIGRbTUFYTl07CnZlY3RvcjxwaWk+IGFkaltNQVhOXTsKdmVjdG9yIDxpbnQ+IGluc1tNQVhOXSwgZXJhW01BWE5dOwoKaW50IG1haW4gKCkgewogICAgY2luID4+IE4gPj4gTSA+PiBLID4+IFQgPj4gUCA+PiBROwogICAgYW5zPUM9RD0xZTE4OwovLyBleHByZXNzCiAgICBmb3IoaW50IGk9MTsgaTw9TTsgaSsrKXsKICAgICAgY2luID4+IEEgPj4gQiA+PiBDID4+IEQ7CiAgICAgIGFkaltBXS5wdXNoX2JhY2soe0IsIER9KTsKICAgICAgYWRqW0JdLnB1c2hfYmFjayh7QSwgRH0pOwogICAgICBpbnNbQV0ucHVzaF9iYWNrKEMpOwogICAgICBlcmFbQl0ucHVzaF9iYWNrKEMpOwogICAgfQovLyBrb211dGVyCiAgIG11bHRpc2V0IDxsbD4gbXM7ICAKICAgIGZvciAoaW50IGkgPTE7IGkgPCBOOyBpKyspewogICAgICAgIGZvciAoYXV0byBjIDogaW5zW2ldKSBtcy5pbnNlcnQoYyk7CiAgICAgICAgZm9yIChhdXRvIGMgOiBlcmFbaV0pIG1zLmVyYXNlKG1zLmZpbmQoYykpOwogICAgICAgIC8vaW5zZXJ0IGVyYXNlCiAgICAgICAgaWYobXMuZW1wdHkoKSkgY29udGludWU7CiAgICAgICAgYWRqW2ldLnB1c2hfYmFjayh7aSsxLCAqbXMuYmVnaW4oKX0pOwogICAgICAgIGFkaltpKzFdLnB1c2hfYmFjayh7aSwgKm1zLmJlZ2luKCl9KTsKICAgIH0KICAgIC8vIGJpYXlhIGtlbHVhciBtYXN1awogICAgZm9yKGludCBpPTE7IGk8PU47IGkrKyl7CiAgICAgIGFkaltpK05dLnB1c2hfYmFjayh7aSwgVH0pOwogICAgICBhZGpbaV0ucHVzaF9iYWNrKHtpK04sIDB9KTsKICAgIH0KICAgIGZvcihpbnQgaT0xOyBpPE47IGkrKyl7CiAgICAgIGFkaltpK05dLnB1c2hfYmFjayh7aStOKzEsIEt9KTsKICAgICAgYWRqW2krTisxXS5wdXNoX2JhY2soe2krTiwgS30pOwogICAgfQogICAgCiAgICBmb3IoaW50IGk9MTsgaTw9TioyOyBpKyspewogICAgICBkW2ldID0gMWUxODsKICAgIH0KICAgIHByaW9yaXR5X3F1ZXVlPHBpaSwgdmVjdG9yPHBpaT4sIGdyZWF0ZXI8cGlpPj4gcHE7CiAgICBwcS5wdXNoKHswLCBQK059KTsKICAgIGRbUCtOXSA9IDA7CiAgICB3aGlsZSghcHEuZW1wdHkoKSl7CiAgICAgIGF1dG9bZGlzdCwgY3VyXSA9IHBxLnRvcCgpOwogICAgICBwcS5wb3AoKTsKICAgICAgaWYoY3VyPT1RIG9yIGN1ciA9PSBOK1EpewogICAgICAgIGFucyA9IG1pbihhbnMsIGRpc3QpOwogIGNvdXQgPDwgYW5zIDw8ICJcbiI7CiAgICAgICAgcmV0dXJuICAwOwogICAgICB9CmlmIChkW2N1cl0gIT0gZGlzdCkgY29udGludWU7CiAgICAgIGZvcihhdXRvW254LCB3XSA6IGFkaltjdXJdKXsKICAgICAgICBpZiAodytkaXN0IDwgZFtueF0pIHsKICAgICAgICAgIGRbbnhdID0gdytkaXN0OwogICAgICAgICAgcHEucHVzaCh7dytkaXN0LCBueH0pOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgY291dCA8PCBhbnMgPDwgIlxuIjsKfQoK