record
#include<bits/stdc++.h>
using namespace std;
int fa[405];
int getfa(int x)
{
if(fa[x]==x)
return x;
else
{
return fa[x]=getfa(fa[x]);
}
}
priority_queue< pair <double , int > , vector < pair < double,int > > ,greater < pair < double,int > > > q;
int book[405];
int u[405],v[405],w[405],t[405],n,m,f;
bool check(double x)
{
while(!q.empty())
q.pop();
for(int i=1;i<=n;i++)
fa[i]=i;
for(int i=1;i<=m;i++)
q.push(make_pair((1.0*w[i]+1.0*x*t[i]),i));
double ans=0;
int cnt=0;
while(!q.empty())
{
int id=q.top().second;
double c=q.top().first;
q.pop();
if(getfa(u[id]) == getfa(v[id]))
continue;
cnt++;
ans+=c;
fa[u[id]]=v[id];
if(cnt>n)
break;
}
if(ans<=f)
return true;
else
return false;
}
int main()
{
scanf("%d%d%d",&n,&m,&f);
for(int i=1;i<=m;i++)
{
scanf("%d%d%d%d",&u[i],&v[i],&w[i],&t[i]);
}
double l=0,r=1e5,eps=1e-7,mid;
while(r-l>eps)
{
mid=(l+r)/2;//printf("%.4f\n",mid);
if(check(mid))
l=mid;
else
r=mid;
}
if(l!=0)
printf("%.4f",r);
else
printf("%0.0000");
}