const maxn=100; maxint=maxlongint div 4; maxq=10000; var s:array[1..maxn] of longint; mark:array[1..maxn] of boolean; g:array[1..maxn,1..maxn] of longint; n,i,j,k,m,x,y,ans,t:longint; begin assign(input,'msner.in'); reset(input); assign(output,'msner.out'); rewrite(output); filldword(g,sizeof(g)div 4,maxint); read(n,m); for i:=1 to m do begin read(x,y,t); if ts[j])) then k:=j; if k<>0 then begin mark[k]:=true; for j:=1 to n do if (not mark[j])and(s[k]+g[k,j]ans then ans:=s[i]; if ans>=maxint then writeln(-1) else writeln(ans); close(input); close(output); end.