#include using namespace std; typedef long long ll; typedef vector vi; typedef vector vl; typedef pair pii; typedef pair pll; typedef int _loop_int; #define REP(i,n) for(_loop_int i=0;i<(_loop_int)(n);++i) #define FOR(i,a,b) for(_loop_int i=(_loop_int)(a);i<(_loop_int)(b);++i) #define FORR(i,a,b) for(_loop_int i=(_loop_int)(b)-1;i>=(_loop_int)(a);--i) #define DEBUG(x) cout<<#x<<": "< P; int n,m; vector g[125252]; int inn[125252]; int mxd[125252]; int mnd[125252]; int crit[125252]; int main(){ scanf("%d%d",&n,&m); REP(i,m){ int a,b,c; scanf("%d%d%d",&a,&b,&c); g[a].push_back(pii(b,c)); inn[b]++; } vi V; REP(i,n)mxd[i]=-1, mnd[i]=1e9; mxd[0] = mnd[0] = 0; REP(i,n)if(inn[i]==0)V.push_back(i); int ans = n; REP(i,n){ int p = V[i]; if(mnd[p]==mxd[p])ans--; for(pii P:g[p]){ CHMIN(mnd[P.first],mxd[p]+P.second); CHMAX(mxd[P.first],mxd[p]+P.second); if(--inn[P.first]==0)V.push_back(P.first); } } printf("%d %d/%d\n",mxd[n-1],ans,n); return 0; }