#include <bits/stdc++.h>
using namespace std ;
#define ll long long
#define fast ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define fir first
#define sec second
#define piint pair < int , int >
#define FOR( i , a , b ) for (int i = (a) , _b = (b) ; i <= _b ; i ++ )
#define FORD( i , a , b ) for (int i = (a) , _b = (b) ; i >= _b ; i -- )
#define pb push_back
#define str string
#define ALL(a) (a).begin() , (a).end()
#define rep( i , a , b) for (int i = (a) ; i < (b) ; i ++ )
#define ld long double
const int maxn = 10000 ;
#define debug 0
#define oo (ll)(1e18)
std::vector< pair < int , ll > > G[maxn +3 ];
vector < int > bfs[maxn + 3] ;
bool spoill[maxn + 3 ] ;
ll ans = oo ;
struct T {
ll du ;
int u , Count ;
} ;
struct cmp
{
bool operator() ( T a , T b ) {
return a.du > b.du ;
}
} ;
#define skip continue;
int n , m , p , l , k ;
ll dp[maxn +3 ][13] ;
void dijk ( int st ) {
FOR ( i , 1 , n ) {
FOR ( j , 0 , k ) dp[i][j] = oo ;
}
dp[st][0] = 0 ;
priority_queue < T , vector <T> , cmp > q ;
q.push ( { 0 , st , 0 }) ;
while (q.size()){
auto [ du , u , Count ] = q.top() ;
if ( u == n ) ans = min ( ans , du ) ; //, cout << du << '\n' ;
q.pop() ;
if ( du > dp[u][Count] ) skip
for (auto [ v , w ] : G[u]){
ll new_dp = du + w ;
if ( dp[v][Count] > new_dp ){
dp[v][Count] = new_dp ;
q.push ( { new_dp , v , Count }) ;
}
}
if ( Count < k ) {
for (auto v : bfs[u]){
ll new_dp = du + p ;
int N_Count = Count + 1 ;
if ( dp[v][N_Count] > new_dp ){
dp[v][N_Count] = new_dp ;
q.push ( { new_dp , v , N_Count }) ;
}
}
}
}
}
void input(){
cin >> n >> m >> p >> l >> k ;
FOR ( i , 1 , m ) {
int u , v , w ; cin >> u >> v >> w ;
G[u].pb ( { v , w }) ;
G[v].pb ( { u , w }) ;
}
FOR ( i , 1 , n ) {
fill ( spoill + 1 , spoill + n + 1 , 0 ) ;
queue < piint > q ;
q.push ( { i , 0 }) ;
spoill[i] = 1 ;
while ( q.size() ) {
auto [ u , du ] = q.front() ;
q.pop() ;
if ( du == l ) continue ;
for (auto [v , w ] : G[u]) {
if(!spoill[v]) {
spoill[v] = 1 ;
bfs[i].pb ( v) ;
q.push ( make_pair(v , du + 1) ) ;
}
}
}
}
dijk ( 1 ) ;
cout << ans ;
}
void solve() {
}
#define name "MINPATH"
int main(){
fast
if(fopen(name".INP","r")) {
freopen (name".INP","r",stdin);
freopen (name".OUT","w",stdout);
}
input() ;
solve() ;
cerr << "\nTIME: = " << (1.0*clock())/CLOCKS_PER_SEC << '\n';
return(0) ;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQgOyAKCgojZGVmaW5lIGxsIGxvbmcgbG9uZyAKI2RlZmluZSBmYXN0IGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7IGNpbi50aWUoMCk7IGNvdXQudGllKDApOwojZGVmaW5lIGZpciBmaXJzdCAKI2RlZmluZSBzZWMgc2Vjb25kIAojZGVmaW5lIHBpaW50IHBhaXIgPCBpbnQgLCBpbnQgPgojZGVmaW5lIEZPUiggaSAsIGEgLCBiICkgZm9yIChpbnQgaSA9IChhKSAsIF9iID0gKGIpIDsgaSA8PSBfYiA7IGkgKysgKSAgCiNkZWZpbmUgRk9SRCggaSAsIGEgLCBiICkgZm9yIChpbnQgaSA9IChhKSAsIF9iID0gKGIpIDsgaSA+PSBfYiA7IGkgLS0gKSAgCgojZGVmaW5lIHBiIHB1c2hfYmFjayAKI2RlZmluZSBzdHIgc3RyaW5nIAojZGVmaW5lIEFMTChhKSAoYSkuYmVnaW4oKSAsIChhKS5lbmQoKSAKI2RlZmluZSByZXAoIGkgLCBhICwgYikgZm9yIChpbnQgaSA9IChhKSA7IGkgPCAoYikgOyBpICsrICkKI2RlZmluZSBsZCBsb25nIGRvdWJsZQpjb25zdCBpbnQgbWF4biA9IDEwMDAwIDsKI2RlZmluZSBkZWJ1ZyAwCiNkZWZpbmUgb28gKGxsKSgxZTE4KQoKc3RkOjp2ZWN0b3I8IHBhaXIgPCBpbnQgLCBsbCA+ID4gR1ttYXhuICszIF07CnZlY3RvciA8IGludCA+IGJmc1ttYXhuICsgM10gOwoKYm9vbCBzcG9pbGxbbWF4biArIDMgXSA7CmxsIGFucyA9IG9vIDsKc3RydWN0IFQgewogICAgbGwgZHUgOwogICAgaW50IHUgLCBDb3VudCA7IAp9IDsKc3RydWN0IGNtcCAKewogICAgYm9vbCBvcGVyYXRvcigpICggVCBhICwgVCBiICkgewogICAgICAgIHJldHVybiBhLmR1ID4gYi5kdSA7CiAgICB9Cn0gOwojZGVmaW5lIHNraXAgY29udGludWU7CmludCBuICwgbSAsIHAgLCBsICwgayA7IApsbCBkcFttYXhuICszIF1bMTNdIDsKdm9pZCBkaWprICggaW50IHN0ICkgewogICAgRk9SICggaSAsIDEgLCBuICkgewogICAgICAgIEZPUiAoIGogLCAwICwgayApIGRwW2ldW2pdID0gb28gOwogICAgfQogICAgZHBbc3RdWzBdID0gMCA7CiAgICBwcmlvcml0eV9xdWV1ZSA8IFQgLCB2ZWN0b3IgPFQ+ICwgY21wID4gcSA7CiAgICBxLnB1c2ggKCB7IDAgLCBzdCAsIDAgfSkgOwogICAgd2hpbGUgKHEuc2l6ZSgpKXsKICAgICAgICBhdXRvIFsgZHUgLCB1ICwgQ291bnQgXSA9IHEudG9wKCkgOwogICAgICAgIGlmICggdSA9PSBuICkgYW5zID0gbWluICggYW5zICwgZHUgKSA7IC8vLCBjb3V0IDw8IGR1IDw8ICdcbicgOwogICAgICAgIHEucG9wKCkgOwogICAgICAgIGlmICggZHUgPiBkcFt1XVtDb3VudF0gKSBza2lwIAogICAgICAgIGZvciAoYXV0byBbIHYgLCB3IF0gOiBHW3VdKXsKICAgICAgICAgICAgbGwgbmV3X2RwID0gZHUgKyB3IDsKICAgICAgICAgICAgaWYgKCBkcFt2XVtDb3VudF0gPiBuZXdfZHAgKXsKICAgICAgICAgICAgICAgIGRwW3ZdW0NvdW50XSA9IG5ld19kcCA7CiAgICAgICAgICAgICAgICBxLnB1c2ggKCB7IG5ld19kcCAsIHYgLCBDb3VudCB9KSA7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCBDb3VudCA8IGsgKSB7CiAgICAgICAgICAgIGZvciAoYXV0byB2IDogYmZzW3VdKXsKICAgICAgICAgICAgICAgICBsbCBuZXdfZHAgPSBkdSArIHAgOwogICAgICAgICAgICAgICAgIGludCBOX0NvdW50ID0gQ291bnQgKyAxIDsKICAgICAgICAgICAgICAgICBpZiAoIGRwW3ZdW05fQ291bnRdID4gbmV3X2RwICl7CiAgICAgICAgICAgICAgICAgICAgZHBbdl1bTl9Db3VudF0gPSBuZXdfZHAgOwogICAgICAgICAgICAgICAgICAgIHEucHVzaCAoIHsgbmV3X2RwICwgdiAsIE5fQ291bnQgfSkgOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9CnZvaWQgaW5wdXQoKXsKICAgIGNpbiA+PiBuID4+IG0gPj4gcCA+PiBsID4+IGsgOwogICAgRk9SICggaSAsIDEgLCBtICkgewogICAgICAgIGludCB1ICwgdiAsIHcgOyBjaW4gPj4gdSA+PiB2ID4+IHcgOyAKICAgICAgICBHW3VdLnBiICggeyB2ICwgdyB9KSA7CiAgICAgICAgR1t2XS5wYiAoIHsgdSAsIHcgfSkgOwogICAgfQogICAgRk9SICggaSAsIDEgLCBuICkgewogICAgICAgIGZpbGwgKCBzcG9pbGwgKyAxICwgc3BvaWxsICsgbiArIDEgLCAwICkgOyAKICAgICAgICBxdWV1ZSA8IHBpaW50ID4gcSA7CiAgICAgICAgcS5wdXNoICggeyBpICwgMCB9KSA7CiAgICAgICAgc3BvaWxsW2ldID0gMSA7CiAgICAgICAgd2hpbGUgKCBxLnNpemUoKSApIHsKICAgICAgICAgICAgYXV0byBbIHUgLCBkdSBdID0gcS5mcm9udCgpIDsKICAgICAgICAgICAgcS5wb3AoKSA7CgogICAgICAgICAgICBpZiAoIGR1ID09IGwgKSBjb250aW51ZSA7IAogICAgICAgICAgICBmb3IgKGF1dG8gW3YgLCB3IF0gOiBHW3VdKSB7CiAgICAgICAgICAgICAgICBpZighc3BvaWxsW3ZdKSB7CiAgICAgICAgICAgICAgICAgICAgc3BvaWxsW3ZdID0gMSA7CiAgICAgICAgICAgICAgICAgICAgYmZzW2ldLnBiICggdikgOwogICAgICAgICAgICAgICAgICAgIHEucHVzaCAoIG1ha2VfcGFpcih2ICwgZHUgKyAxKSApIDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIGRpamsgKCAxICkgOwogICAgY291dCA8PCBhbnMgOwp9CnZvaWQgc29sdmUoKSB7Cgp9CiNkZWZpbmUgbmFtZSAiTUlOUEFUSCIgCmludCBtYWluKCl7CiAgICBmYXN0IAogICAgaWYoZm9wZW4obmFtZSIuSU5QIiwiciIpKSB7CiAgICAgICAgZnJlb3BlbiAobmFtZSIuSU5QIiwiciIsc3RkaW4pOwogICAgICAgIGZyZW9wZW4gKG5hbWUiLk9VVCIsInciLHN0ZG91dCk7CiAgICB9CiAgICBpbnB1dCgpIDsKICAgIHNvbHZlKCkgOwogICAgY2VyciA8PCAiXG5USU1FOiA9ICIgPDwgKDEuMCpjbG9jaygpKS9DTE9DS1NfUEVSX1NFQyA8PCAnXG4nOwogICAgcmV0dXJuKDApIDsKfQ==