program ural1266; const
maxn=20;
zero=1e-6;
var
e:array[1..maxn,1..maxn]of real;
n,m,i,x,y,r:longint;
ans:real;
begin
read(n,m);
for i:=1 to m do begin
read(x,y,r);
e[x,x]:=e[x,x]-1/r;e[x,y]:=e[x,y]+1/r;
e[y,y]:=e[y,y]-1/r;e[y,x]:=e[y,x]+1/r;
end;
for i:=2 to n-1 do e[i,1]:=-e[i,1];
for x:=n-1 downto 3 do begin
y:=x;while abs(e[y,x])<zero do dec(y);
if y<x then begin e[1]:=e[x];e[x]:=e[y];e[y]:=e[1];end;
for y:=2 to x-1 do
for i:=1 to x-1 do
e[y,i]:=e[y,i]-e[x,i]/e[x,x]*e[y,x];
end;
e[1,1]:=1;
for x:=2 to n-1 do begin
for i:=2 to x-1 do
e[x,1]:=e[x,1]-e[x,i]*e[i,1];
e[x,1]:=e[x,1]/e[x,x];
end;
for i:=1 to n-1 do
ans:=ans+e[n,i]*e[i,1];
writeln(1/ans:0:2);
end.
cHJvZ3JhbSB1cmFsMTI2NjsgY29uc3QKCiBtYXhuPTIwOwogemVybz0xZS02Owp2YXIKCiBlOmFycmF5WzEuLm1heG4sMS4ubWF4bl1vZiByZWFsOwogbixtLGkseCx5LHI6bG9uZ2ludDsKIGFuczpyZWFsOwpiZWdpbgoKIHJlYWQobixtKTsKIGZvciBpOj0xIHRvIG0gZG8gYmVnaW4KICAgcmVhZCh4LHkscik7CiAgIGVbeCx4XTo9ZVt4LHhdLTEvcjtlW3gseV06PWVbeCx5XSsxL3I7CiAgIGVbeSx5XTo9ZVt5LHldLTEvcjtlW3kseF06PWVbeSx4XSsxL3I7CiBlbmQ7CiBmb3IgaTo9MiB0byBuLTEgZG8gZVtpLDFdOj0tZVtpLDFdOwogZm9yIHg6PW4tMSBkb3dudG8gMyBkbyBiZWdpbgogICB5Oj14O3doaWxlIGFicyhlW3kseF0pPHplcm8gZG8gZGVjKHkpOwogICBpZiB5PHggdGhlbiBiZWdpbiBlWzFdOj1lW3hdO2VbeF06PWVbeV07ZVt5XTo9ZVsxXTtlbmQ7CiAgIGZvciB5Oj0yIHRvIHgtMSBkbwogICAgIGZvciBpOj0xIHRvIHgtMSBkbwogICAgICAgZVt5LGldOj1lW3ksaV0tZVt4LGldL2VbeCx4XSplW3kseF07CiBlbmQ7CiBlWzEsMV06PTE7CiBmb3IgeDo9MiB0byBuLTEgZG8gYmVnaW4KICAgZm9yIGk6PTIgdG8geC0xIGRvCiAgICAgZVt4LDFdOj1lW3gsMV0tZVt4LGldKmVbaSwxXTsKICAgZVt4LDFdOj1lW3gsMV0vZVt4LHhdOwogZW5kOwogZm9yIGk6PTEgdG8gbi0xIGRvCiAgIGFuczo9YW5zK2VbbixpXSplW2ksMV07CiB3cml0ZWxuKDEvYW5zOjA6Mik7CmVuZC4=