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.