type time=array [1..3] of byte; var a,b:time; c,d:string[8]; e,f:int64; Procedure Strong(var c:string[8]; var a:time); var x:byte; y:integer; Begin For x:=1 to 2 do Begin Val(Copy(c,1,Pos(':',c)-1),a[x],y); Delete(c,1,Pos(':',c)); End; Val(c,a[3],y); End; Begin ReadLn(c); Strong(c,a); ReadLn(d); Strong(d,b); e:=(b[1]*3600+b[2]*60+b[3])-(a[1]*3600+a[2]*60+a[3]); If e<0 then e:=e+24*3600; If e div 3600<10 then Write('0',e div 3600,':') else Write(e div 3600,':'); e:=e mod 3600; If e div 60<10 then Write('0',e div 60,':') else Write(e div 60,':'); If e mod 60<10 then Write('0',e mod 60) else Write(e mod 60); End.