#include<cstdio>
#include<stack>
#define N 100001
using namespace std;
int front[N],tot;
int in[N],out[N];
double ans;
struct node
{
int to,nxt,val;
double may;
}e[N*2];
double f[N];
stack<double>s;
void add(int u,int v,int w)
{
e[++tot].to=v; e[tot].nxt=front[u]; front[u]=tot; e[tot].val=w;
}
int main()
{
int n,m;
int x,y,z;
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++)
{
scanf("%d%d%d",&x,&y,&z);
add(x,y,z);
in[y]++;
out[x]++;
}
f[1]=1; s.push(1);
int now;
while(!s.empty())
{
now=s.top(); s.pop();
for(int i=front[now];i;i=e[i].nxt)
{
f[e[i].to]+=f[now]*1.0/out[now];
e[i].may=f[now]*1.0/out[now];
in[e[i].to]--;
if(!in[e[i].to]) s.push(e[i].to);
}
}
for(int i=1;i<=m;i++) ans+=e[i].may*e[i].val;
printf("%.2lf",ans);
}