#include<bits/stdc++.h>
using namespace std;
const int N=100005;
int head[N],to[N],nex[N],cnt;
double w[N];
void add(int u,int v,int ww){
cnt++;
to[cnt]=v;
nex[cnt]=head[u];
w[cnt]=ww;
head[u]=cnt;
}
int n,m;
int in[N],out[N];
double dis[N];
double gai[N];
queue<int>q;
signed main(){
freopen("P4316_3.in","r",stdin);
cin>>n>>m;
double ww;
for(int u,v,i=1;i<=m;i++){
cin>>u>>v>>ww;
add(u,v,ww);
in[v]++;
out[u]++;
}
for(int i=1;i<=n;i++)if(in[i]==0)q.push(i);
dis[1]=0;
gai[1]=1;
while(!q.empty()){
int u=q.front();q.pop();
for(int i=head[u];i;i=nex[i]){
int v=to[i];
in[v]--;
if(in[v]==0)q.push(v);
gai[v]+=gai[u]/out[u];
dis[v]+=dis[u]/out[u]+w[i]/out[u]*gai[u];
}
}
printf("%.2lf",dis[n]);
return 0;
}