program routes; {$APPTYPE CONSOLE} var a,tstart,tfinish:array[1..100,1..100] of real; kod,k,i,j,n:integer; ch:char; ts:string; g1,h1,g2,h2:integer; t1,t2,v:real; c:real; f1,f2:text; begin assign(f1,'routes.dat'); reset(f1); readln(f1,n); for i:=1 to n do for j:=1 to n do a[i,j]:=2000; while not(eof(f1)) do begin read(f1,i,j); ts:=''; repeat read(f1,ch); ts:=ts+ch; until ch=':'; delete(ts,length(ts),1); val(ts,g1,kod); ts:=''; repeat read(f1,ch); ts:=ts+ch; until ch=' '; delete(ts,length(ts),1); val(ts,h1,kod); t1:=g1+h1/100; ts:=''; repeat read(f1,ch); ts:=ts+ch; until ch=':'; delete(ts,length(ts),1); val(ts,g2,kod); ts:=''; repeat read(f1,ch); ts:=ts+ch; until ch=' '; delete(ts,length(ts),1); val(ts,h2,kod); t2:=g2+h2/100; readln(f1,v); if (v=19.01)and (t2<=23.59) or(t1<=t2)and(t1>=00.00)and (t2<=19.00) or(t1>t2)and(t1>=19.01)and (t2<=19.00))} then begin a[i,j]:=v;a[j,i]:=v; tstart[i,j]:=t1;tstart[j,i]:=t1; tfinish[i,j]:=t2;tfinish[j,i]:=t2; end; //writeln(i,' ',j,' ',t1:2:2,' ',t2:2:2,' ',a[i,j]:2:2); //readln; end; {for i:=1 to n do begin for j:=1 to n do write(a[i,j,1]:2:2,' ' ); writeln; end; readln;} for k:=1 to n do for i:=1 to n do for j:=1 to n do if (a[i,k]+a[k,j]=19.01)and(a[1,n,3]<=19.00)} then writeln(f2,a[1,4]:2:2) else writeln(f2,'impossible'); close(f1); close(f2); end.