#include <bits/stdc++.h>
#define ll long long
#define pir pair<int,int>
const int N = 1e6+7;
const int mod = 998244353;
const ll ds = 1e15;
const double eps = 1e-8;
using namespace std;
struct edge{
int v,w,next;
}edge[N];
int head[N],cnt = 0,deg[N],degg[N];
double dp[N];
void add(int u,int v,int w){
edge[cnt].v = v;
edge[cnt].w = w;
edge[cnt].next = head[u];
head[u] = cnt++;
}
void solve(){
int n,m,a,b,c;
cin >> n >> m;
for(int i = 0; i <= n; i++) head[i] = -1,dp[i] = 0.0;
for(int i = 1; i <= m; i++){
cin >> a >> b >> c;
add(b,a,c);
deg[a]++;
degg[a]++;
}
queue<int>q;
q.push(n);
while(!q.empty()){
int d = q.front();
q.pop();
//cout << dp[d] << endl;
for(int i = head[d]; ~i; i = edge[i].next){
int v = edge[i].v;
int w = edge[i].w;
dp[v] += (dp[d]+w)*1.0/deg[v];
degg[v]--;
// cout << v << endl;
if(degg[v] == 0) q.push(v);
}
}
printf("%.2f\n",dp[1]);
}
int main(){
// int t;
// cin >> t;
// while(t--)
solve();
//system("pause");
return 0;
}