/// spfa - muoii
/// spfa - vn.spoj.com/problems/NETACCEL/
#include <bits/stdc++.h>
using namespace std;
#define tag "spoj"
#define maxn 1003
#define maxc 207
#define oo 1000000007
#define mid ((l+r)>>1)
#define meset(a,x) memset(a,x,sizeof(a))
#define loop(x) for(int LoOpEr=x;LoOpEr-->0;)
///>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
int n,m,k;
struct neigh{ int ver; double wei; };
struct lala{ int ver,cost; };
vector<neigh> adj[maxn];
double d[maxn][17];
bool inq[maxn][17];
int pw2[17];
void spfa(int u)
{
meset(inq,0);
meset(d,127);
pw2[0]=1;for(int i=1;i<17;i++) pw2[i]=pw2[i-1]<<1;
queue<lala> Q;
d[u][0]=0,Q.push({u,0}),inq[u][0]=1;
int c;
while (Q.size())
{
u=Q.front().ver;
c=Q.front().cost;
Q.pop(),inq[u][c]=false;
for (const auto &e: adj[u])
{
int v=e.ver; double w=e.wei;
for (int tmp=0;tmp<=k;tmp++)
{
double up=d[v][tmp];
for (int div=0;div<=tmp;div++) up=min(up,d[u][tmp-div] + w/pw2[div]);
if (up<d[v][tmp])
{
d[v][tmp]=up;
if (!inq[v][tmp]) Q.push({v,tmp}),inq[v][tmp]=true;
}
}
}
}
}
int main()
{
#ifdef dmdd
freopen(tag".inp","r",stdin); freopen(tag".out","w",stdout);
#endif // dmdd
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
cin>>n>>m>>k;
int x,y; double z;
while(m-->0) cin>>x>>y>>z,adj[x].push_back({y,z}),adj[y].push_back({x,z});
spfa(1);
cout<<fixed<<setprecision(2);
cout<<d[n][k]<<"\n";
return 0;
}
Ly8vIHNwZmEgLSBtdW9paQovLy8gc3BmYSAtIHZuLnNwb2ouY29tL3Byb2JsZW1zL05FVEFDQ0VMLwoKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgdGFnICJzcG9qIgojZGVmaW5lIG1heG4gMTAwMwojZGVmaW5lIG1heGMgMjA3CiNkZWZpbmUgb28gMTAwMDAwMDAwNwojZGVmaW5lIG1pZCAoKGwrcik+PjEpCiNkZWZpbmUgbWVzZXQoYSx4KSBtZW1zZXQoYSx4LHNpemVvZihhKSkKI2RlZmluZSBsb29wKHgpIGZvcihpbnQgTG9PcEVyPXg7TG9PcEVyLS0+MDspCi8vLz4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4KaW50IG4sbSxrOwpzdHJ1Y3QgbmVpZ2h7IGludCB2ZXI7IGRvdWJsZSB3ZWk7IH07CnN0cnVjdCBsYWxheyBpbnQgdmVyLGNvc3Q7IH07CnZlY3RvcjxuZWlnaD4gYWRqW21heG5dOwpkb3VibGUgZFttYXhuXVsxN107CmJvb2wgaW5xW21heG5dWzE3XTsKaW50IHB3MlsxN107Cgp2b2lkIHNwZmEoaW50IHUpCnsKICAgIG1lc2V0KGlucSwwKTsKICAgIG1lc2V0KGQsMTI3KTsKICAgIHB3MlswXT0xO2ZvcihpbnQgaT0xO2k8MTc7aSsrKSBwdzJbaV09cHcyW2ktMV08PDE7CgogICAgcXVldWU8bGFsYT4gUTsKICAgIGRbdV1bMF09MCxRLnB1c2goe3UsMH0pLGlucVt1XVswXT0xOwoKICAgIGludCBjOwogICAgd2hpbGUgKFEuc2l6ZSgpKQogICAgewogICAgICAgIHU9US5mcm9udCgpLnZlcjsKICAgICAgICBjPVEuZnJvbnQoKS5jb3N0OwogICAgICAgIFEucG9wKCksaW5xW3VdW2NdPWZhbHNlOwoKICAgICAgICBmb3IgKGNvbnN0IGF1dG8gJmU6IGFkalt1XSkKICAgICAgICB7CiAgICAgICAgICAgIGludCB2PWUudmVyOyBkb3VibGUgdz1lLndlaTsKCiAgICAgICAgICAgIGZvciAoaW50IHRtcD0wO3RtcDw9azt0bXArKykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZG91YmxlIHVwPWRbdl1bdG1wXTsKCiAgICAgICAgICAgICAgICBmb3IgKGludCBkaXY9MDtkaXY8PXRtcDtkaXYrKykgdXA9bWluKHVwLGRbdV1bdG1wLWRpdl0gKyB3L3B3MltkaXZdKTsKCiAgICAgICAgICAgICAgICBpZiAodXA8ZFt2XVt0bXBdKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGRbdl1bdG1wXT11cDsKICAgICAgICAgICAgICAgICAgICBpZiAoIWlucVt2XVt0bXBdKSBRLnB1c2goe3YsdG1wfSksaW5xW3ZdW3RtcF09dHJ1ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKaW50IG1haW4oKQp7CiAgICAjaWZkZWYgZG1kZAogICAgZnJlb3Blbih0YWciLmlucCIsInIiLHN0ZGluKTsgZnJlb3Blbih0YWciLm91dCIsInciLHN0ZG91dCk7CiAgICAjZW5kaWYgLy8gZG1kZAogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTtjaW4udGllKDApO2NvdXQudGllKDApOwoKICAgIGNpbj4+bj4+bT4+azsKCiAgICBpbnQgeCx5OyBkb3VibGUgejsKICAgIHdoaWxlKG0tLT4wKSBjaW4+Png+Pnk+PnosYWRqW3hdLnB1c2hfYmFjayh7eSx6fSksYWRqW3ldLnB1c2hfYmFjayh7eCx6fSk7CgogICAgc3BmYSgxKTsKCiAgICBjb3V0PDxmaXhlZDw8c2V0cHJlY2lzaW9uKDIpOwogICAgY291dDw8ZFtuXVtrXTw8IlxuIjsKICAgIHJldHVybiAwOwp9Cg==