program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  st1, st2 : string;
  h1, h2, m1, m2, h3, m3 : integer;
begin
  readln(st1);
  //readln;
  readln(st2);
  h1 := strtoint(copy(st1, 1, 2));
  m1 := strtoint(copy(st1, 4, 2));
  h2 := strtoint(copy(st2, 1, 2));
  m2 := strtoint(copy(st2, 4, 2));
  //writeln(h1, m1, h2, m2);
  m3 := (m1 + m2) div 2;
  m3 := (h1+h2) mod 2 * 30 + m3;
  h3 := (h1 + h2) div 2 + m3 div 60;
  m3 := m3 mod 60;
  if (h3 < 10) then
    write(0);
  write(h3, ':');
  if (m3 < 10) then
    write(0);
  write(m3);
  readln;
  readln;
end.

const fi='';
      fo='';
var f:text;
    s,s1,st,st1,kq,ss,ss1,kqs,kqs1:ansistring;
    so,so1,d,d1,sso,sso1,t1,t2,t3,h3,m3:longint;

begin
   assign(f,fi);reset(f);
   readln(f,st);
   readln(f,st1);

   assign(f,fo);rewrite(f);
   s:=st[1]+st[2];
   s1:=st[4]+st[5];
   ss:=st1[1]+st1[2];
   ss1:=st1[4]+st1[5];
   val(s,so);
   val(s1,so1);
   val(ss,sso);
   val(ss1,sso1);
   t1:=so*60+so1;
   t2:=sso*60+sso1;
   t3:=(t1+t2) div 2;
   h3:=t3 div 60;
   m3:=t3 mod 60;
   str(h3,kqs);
   str(m3,kqs1);
   if length(kqs) = 1 then kqs:='0'+kqs;
   if length(kqs1)=1 then kqs1:='0'+kqs1;
   kq:=kqs+':'+kqs1;
   write(f,kq);
   close(f);
end.

Var S,F,SS1,SS2:String;
    num1,num2,num3,num4:Longint;
Begin
    Readln(S); Readln(F);
    Val(Copy(S,1,2),num1);
    Val(Copy(S,4,2),num2);
    Val(Copy(F,1,2),num3);
    Val(Copy(F,4,2),num4);
    Str((num1+num3) div 2,SS1);
    If (num2+num4) div 2 + (num1+num3) mod 2 * 30 > 59 then begin
        Str((num1+num3) div 2 + 1,SS1);
        Str((num2+num4) div 2 + (num1+num3) mod 2 * 30 - 60,SS2);
    End
    Else Str((num2+num4) div 2 + (num1+num3) mod 2 * 30,SS2);
    If length(SS1)=1 then SS1:='0'+SS1;
    If length(SS2)=1 then SS2:='0'+SS2;
    Writeln(SS1+':'+SS2);
End.

Var  a,b:array[0..6] of byte;
     kq,kq1,kq2,kq3,m,m1,i,kq4:integer;
     s,ss,t,t1:string;

Begin
  Assign(input,'');
  Assign(output,'');
  Reset(input);
  Rewrite(output);
  Readln(s);
  Readln(ss);

  For i:=1 to length(s) do
   if (s[i]<>':') then
    begin
      a[i]:=ord(s[i]) - 48;
      b[i]:=ord(ss[i]) - 48;
    end;
  kq:= 10*a[1]+a[2];
  kq1:=10*b[1]+b[2];
  kq2:= 10*a[4]+a[5];
  kq3:= 10*b[4]+b[5];
  // m:= (kq+kq1) div 2;
 //  m1:=(kq2+kq3) div 2;
 //  If (m1 >60) then
 //   begin
  //   m:=m+1;
    // m1:=m1-60;
  //  end;
  {If (kq2 =0) and (kq3=0) then
   begin
    m:= (kq+kq1) div 2;
    str(m,t1);
    t1:=t1+':';
    t1:=t1+'30';
   end
     else
      begin }
       m:=(kq1*60+kq3)-(kq*60+kq2);
       m:= m div 2;
       kq4:=kq2+m;
       m1:= kq4 div 60;
       kq:=kq+m1;
       str(kq,t1);
       If (length(t1)<>2) then t1:='0'+t1;
       kq4:=kq4 - (m1*60);
       str(kq4,t);
       If (length(t)<>2) then t:='0'+t;
       t1:=t1+':';
       t1:=t1+t;

   Writeln(t1);
  Close(input);
  Close(output);
End.

 var j,l,r,code:longint;
 h1,h2,h3,m1,m2,m3:longint;
 t1,t2,t3:longint;
 c:char;
s,s1:string;
er:integer;
begin

readln(s);
s1:=copy(s,1,2);
val(s1,h1,er);
s1:=copy(s,4,2);
val(s1,m1,er);
t1:=60*h1+m1;
readln(s);
s1:=copy(s,1,2);
val(s1,h2,er);
s1:=copy(s,4,2);
val(s1,m2,er);
t2:=60*h2+m2;
t3:=round((t1+t2)/2);
h3:=t3 div 60;
m3:=t3 mod 60;
if (h3<10) then write('0',h3)
else write(h3);
write(':');
if (m3<10) then write('0',m3)
else write(m3);
end.

var h1,m1,h2,m2:longint;tg:qword;k:string;
begin

 readln(k);
 val(copy(k,1,2),h1);
 val(copy(k,pos(':',k)+1,2),m1);
 readln(k);
 val(copy(k,1,2),h2);
 val(copy(k,pos(':',k)+1,2),m2);
 tg:=(h2-h1)*60+m2-m1;
 tg:=tg div 2;m1:=m1+tg;
 while m1>=60 do
  begin
   dec(m1,60);inc(h1);
  end;
 if h1>=10 then write(h1,':') else write('0',h1,':');
 if m1>=10 then write(m1) else write('0',m1);

end.

program jam;

var
s:string;
jam1,jam2:longint;
menit1,menit2:longint;
temp1,temp2:string;
selisihJam,selisihMenit:longint;
tambahanJam:longint;
tambahanMenit:longint;
totalMenit:longint;
hasilMenit,hasilJam:longint;

begin
	readln (s);
	temp1 := s[1] + s[2];
	temp2 := s[4] + s[5];
	val (temp1, jam1);
	val (temp2, menit1);
	readln (s);
	temp1 := s[1] + s[2];
	temp2 := s[4] + s[5];
	val (temp1, jam2);
	val (temp2, menit2);
	selisihJam := jam2 - jam1;
	selisihMenit := menit2 - menit1;
	totalMenit := (60*selisihJam) + selisihMenit;
	totalMenit := totalMenit div 2;
	tambahanJam := totalMenit div 60;
	tambahanMenit := totalMenit mod 60;
	hasilJam := jam1+tambahanJam;
	hasilMenit := menit1+tambahanMenit;
	if (hasilMenit >= 60) then
	begin
		hasilJam := hasilJam + (hasilMenit div 60);
		hasilMenit := hasilMenit mod 60;
	end;
	if (hasilJam < 10) then
	begin
		if (hasilMenit < 10) then
		begin
			writeln ('0',hasilJam,':0',hasilMenit);
		end else
		begin
			writeln ('0',hasilJam,':',hasilMenit);
		end;
	end else
	begin
		if (hasilMenit < 10) then
		begin
			writeln (hasilJam,':0',hasilMenit);
		end else
		begin
			writeln (hasilJam,':',hasilMenit);
		end;
	end;
end.

procedure ReadTime (var h, m: Integer);
var
        s: string;

begin
        ReadLn (s);

        h := (Ord (s[1]) - Ord ('0')) * 10 + (Ord (s[2]) - Ord ('0'));
        m := (Ord (s[4]) - Ord ('0')) * 10 + (Ord (s[5]) - Ord ('0'));
end;

procedure WriteTime (mh, mm: Integer);
begin
        if mh <= 9 then
                Write ('0', mh)
        else
                Write (mh);

        Write (':');

        if mm <= 9 then
                Write ('0', mm)
        else
                Write (mm)
end;

var
        h1, m1, h2, m2: Integer;
        mh, mm: Integer;

begin
        ReadTime (h1, m1);
        ReadTime (h2, m2);

        m1 := h1 * 60 + m1;
        m2 := h2 * 60 + m2;

        mm := (m2 + m1) div 2;
        mh := mm div 60;
        mm := mm mod 60;

        WriteTime (mh, mm)
end.

var
 s1,s2:string;
 ch1,ch2,n,i,m1,m2,sum1,sum2,sum:integer;
begin
  readln(s1);
  readln(s2);
  ch1:=strtoint(copy(s1,1,2));
  ch2:=strtoint(copy(s2,1,2));
  m1:=strtoint(copy(s1,4,2));
  m2:=strtoint(copy(s2,4,2));
  //writeln(ch1,' ',m1);
  //writeln(ch2,' ',m2);
  sum1:=ch1 * 60 + m1;
  sum2:= ch2*60 + m2;
  sum:=sum1+sum2;
  sum:=sum div 2;
  ch1:=sum div 60;
  m2:=sum mod 60;
  s1:=inttostr(ch1);
  if length(s1)<2 then
    s1:='0'+s1;
  s2:=inttostr(m2);
   if length(s2)<2 then
    s2:='0'+s2;
  writeln(s1,':',s2);

end.

program kontest;
var
h1,h2,m1,m2,h3:byte;
m3:smallint;
dlit:word;
s,s1:string;
err:integer;
begin
Readln(s);
s1:=Copy(s,1,2);
Val(s1,h1,err);
s1:=Copy(s,4,2);
Val(s1,m1,err);
Readln(s);
s1:=Copy(s,1,2);
Val(s1,h2,err);
s1:=Copy(s,4,2);
Val(s1,m2,err);
h3:=h2-h1;
m3:=m2-m1;
dlit:=60*h3+m3;
dlit:=dlit div 2;
h1:=h1+dlit div 60;
m1:=m1+dlit mod 60;
if m1>=60 then
  begin
  h1+=1;
  m1:=m1 mod 60;
  end;
if h1<10 then write(0,h1,':') else write(h1,':');
if m1<10 then write(0,m1) else write(m1);
end.

Program CF_1133A;
var m1,m2,h1,h2,i,l,l1,f,m,k:integer;
    st1,st2,s,s1:string;
Begin
  readln(st1);
  readln(st2);
  s:=st1;
  delete(s,3,3);
  Val(s,h1,f);
  s1:=st2;
  delete(s1,3,3);
  Val(s1,h2,f);
  s:=st1;
  delete(s,1,3);
  Val(s,m1,f);
  s1:=st2;
  delete(s1,1,3);
  Val(s1,m2,f);
  if (m1=0)and(m2=0) then begin
                           if (h2-h1) mod 2 = 1 then  begin
                                                        m2:=m2+60;
                                                        l:=h1+((h2-h1-1) div 2);
                                                        l1:=(m2-m1) div 2;
                                                      end
                                                else begin
                                                        l:=(h2+h1) div 2;
                                                        l1:=0;
                                                     end;

                          end
                      else if m1>m2 then begin
                                          h2:=h2-1;
                                          m2:=m2+60;
                                          h2:=h2-h1;
                                          l:=h1+(h2 div 2);
                                          l1:=(m2+m1) div 2;

                                         end

                               else if h1=h2 then begin
                                                    l:=h1;
                                                    l1:=(m2+m1) div 2;
                                                  end
                                             else begin
                                                    if (h2-h1) mod 2 = 1 then begin h2:=h2-1;m2:=m2+60;end;
                                                    h2:=h2-h1;
                                                    l:=h1+(h2 div 2);
                                                    l1:=(m2+m1) div 2;
                                                 end;
 if l1>=60 then begin l:=l+1;l1:=l1 mod 60;end;
 if l<=9 then write(0);
 write(l);
 write(':');
 if l1<=9 then write(0);
 write(l1);
end.

program zA;

var
   a, b, s: string;
   h1, m1, h2, m2, code, time: integer;
   h3, m3: integer;

begin
   readln(a);
   readln(b);
   s:=a[1]+a[2];
   val(s, h1, code);
   s:=a[4]+a[5];
   val(s, m1, code);

   s:=b[1]+b[2];
   val(s, h2, code);
   s:=b[4]+b[5];
   val(s, m2, code);

   time:=(h1*60 + m1 + h2*60 + m2) div 2;
   h3:=time div 60;
   m3:=time mod 60;
   if h3<10 then write('0',h3) else write(h3);
   write(':');
   if m3<10 then write('0', m3) else write(m3);
end.

var s,s1:string;h,m,h1,m1,x,y,z:longint;
begin
readln(s);
readln(s1);
h:=strtoint(s[1])*10+strtoint(s[2]);
m:=strtoint(s[4])*10+strtoint(s[5]);
h1:=strtoint(s1[1])*10+strtoint(s1[2]);
m1:=strtoint(s1[4])*10+strtoint(s1[5]);
x:=h*60+m;
y:=h1*60+m1;
z:=(y-x) div 2;
h+=(z+m) div 60;
m:=(z+m) mod 60;
write(h div 10,h mod 10,':',m div 10,m mod 10);
end.

var
s1,s2,wh1,wm1,ans:string;
q1,q2,qq,m1,m2,h1,hq,mq,h2:integer;
begin
readln(s1);
readln(s2);
h1:=strtoint(copy(s1,1,2));
h2:=strtoint(copy(s2,1,2));
m1:=strtoint(copy(s1,4,2));
m2:=strtoint(copy(s2,4,2));
hq:=(h2-h1) div 2;
mq:=(m2-m1) div 2;
if (h2-h1) mod 2 = 1 then begin q1:=h1+hq; q2:=m1+mq+30; end else begin
q1:=h1+hq;
q2:=m1+mq;
end;
if q2>59 then begin q2:=q2-60; inc(q1); end;
wh1:=inttostr(q1);
wm1:=inttostr(q2);
if length(wh1)=1 then wh1:='0'+wh1;
if length(wm1)=1 then wm1:='0'+wm1;
ans:=wh1+':'+wm1;
write(ans);
end.

var
  s1, s2, hh1, hh2, mm1, mm2: string;
  w, q, err, q1, q2, w1, w2, z, a, b: integer;

begin
  readln(s1);
  readln(s2);
  hh1 := copy(s1, 1, 2);
  mm1 := copy(s1, 4, 2);
  hh2 := copy(s2, 1, 2);
  mm2 := copy(s2, 4, 2);
  val(hh1, q1, err);
  val(hh2, q2, err);
  val(mm1, w1, err);
  val(mm2, w2, err);
  a := q2 * 60 + w2;
  b := q1 * 60 + w1;
  z := (a - b) div 2;
  q := (b + z) div 60;
  w := (b + z) mod 60;
  if q < 10 then
    write('0', q)
  else
    write(q);
  write(':');
  if w < 10 then
    write('0', w)
  else
    write(w);
end.

var
  vvod: string;
  h1, h2, m1, m2, min1, min2, razn: integer;
begin
  readln(vvod);
  h1 := StrToInt(copy(vvod, 1, 2));
  m1 := StrToInt(copy(vvod, 4, 2));
  readln(vvod);
  h2 := StrToInt(copy(vvod, 1, 2));
  m2 := StrToInt(copy(vvod, 4, 2));
  min1 := h1 * 60 + m1;
  min2 := h2 * 60 + m2;
  razn := Trunc((min2 - min1) / 2);
  min1 += razn;
  h1 := min1 div 60;
  m1 := min1 - ((min1 div 60) *60);
  if (h1 < 10) and (m1 <10) then
    write('0' + IntToStr(h1) + ':0' + IntToStr(m1))
    else if h1 < 10 then
      write('0' + IntToStr(h1) + ':' + IntToStr(m1))
        else if m1 < 10 then
          write(IntToStr(h1) + ':0' + IntToStr(m1))
            else write(IntToStr(h1) + ':' + IntToStr(m1));
end.

var s,temp:string;
hours,min,start,close,middle,f:integer;

begin
    readln(s);
    temp:=s[1]+s[2];
    val(temp,hours,f);
    temp:=s[4]+s[5];
    val(temp,min,f);
    start:= hours*60 + min;

    readln(s);
    temp:=s[1]+s[2];
    val(temp,hours,f);
    temp:=s[4]+s[5];
    val(temp,min,f);
    close:= hours*60 + min;

    if close<start then close:=close + 24*60;

    middle:= start + (close-start) div 2;

    if (middle div 60 > 23) then middle:= middle - 24*60;

    if (middle div 60 < 10) then write(0);
    write(middle div 60);
    write(':');
    if (middle mod 60 < 10) then write(0);
    write(middle mod 60);
end.

var h1,m1,h2,m2,m,hsr,msr,hsrm : longint;
    s1,s2,h1s,m1s,h2s,m2s : string;
begin
   readln(s1);
   readln(s2);
   h1s:=copy(s1,1,2);
   m1s:=copy(s1,4,2);
   h2s:=copy(s2,1,2);
   m2s:=copy(s2,4,2);
   val(h1s,h1,m);
   val(m1s,m1,m);
   val(h2s,h2,m);
   val(m2s,m2,m);
   hsr:=(h1+h2) div 2;
   msr:=(m1+m2) div 2;
   hsrm:=(h1+h2) mod 2;
   if hsrm>0 then msr:=msr+30;
   if msr>=60 then begin
                   msr:=msr mod 60;
                   inc(hsr);
                   end;
   if hsr<10 then write(0,hsr,':')
             else write(hsr,':');
   if msr<10 then write(0,msr)
             else write(msr);
end.

var
     s1,s2:string;
     res,s,ss1,ss2: integer;
begin
readln(s1);
readln(s2);
ss1:=(strtoint(s1[1])*10+strtoint(s1[2]))*60+(strtoint(s1[4])*10+strtoint(s1[5]));
ss2:=(strtoint(s2[1])*10+strtoint(s2[2]))*60+(strtoint(s2[4])*10+strtoint(s2[5]));
s:=(ss2-ss1)div 2;
res:=ss1+s;
if res div 60<10 then write(0); write(res div 60,':');
if res mod 60<10 then write(0); write(res mod 60);
end.

    program ideone;
    var
    	i,hour,min:integer;
    	a,b:string;
    begin
    	readln(a);
    	readln(b);
        hour:=(StrToInt(copy(a,1,2)) + StrToInt(copy(b,1,2))) * 60;
    	min:=hour + strtoint(copy(a,4,2)) + strtoint(copy(b,4,2));
       	min:= min div 2;
       	hour:= min div 60;
    	min:= min mod 60;
        	if (hour<10) then
    	    if (min<10) then
    	        writeln('0',hour,':0',min) 	   else
    	        writeln('0',hour,':',min)        else
            if (min<10) then
    	        writeln(hour,':0',min)    	    else
    	        writeln(hour,':',min);
    end.

var
  s1, s2: string;
  x: longint;

function p(c: char): longint;
begin
  result := ord(c) - ord('0');
end;

function f(s: string): longint;
begin
  result := (p(s[1]) * 10 + p(s[2])) * 60 + p(s[4]) * 10 + p(s[5]);
end;

begin
  readln(s1);
  readln(s2);
  x := (f(s1) + f(s2)) div 2;
  if x div 60 < 10 then
    write('0');
  write(x div 60, ':');
  if x mod 60 < 10 then
    write('0');
  write(x mod 60);
end.

Program A1;
uses math;
var H,M,S1,S2,S3,S4:string; i,code,h1,h2,m1,m2:longint;
Procedure Xuli;
begin   S1:=''; S2:=''; S3:=''; S4:='';
        for i:=1 to length(h) do
        if H[i]<>':' then
        S1:=S1+H[i]
        else begin S2:=copy(H,i+1,2);
                   break;
             end;
        for i:=1 to length(M) do
        if M[i]<>':' then
        S3:=S3+M[i]
        else begin S4:=copy(M,i+1,2);
                   break;
             end;
        val(S1,h1,code); val(S2,m1,code);
        val(S3,h2,code); val(S4,m2,code);
end;
Procedure Cal;
begin   m2:=(m2+h1*60+h2*60+m1) div 2;
        h1:=(m2 div 60) ; m1:=(m2 mod 60);
        str(h1,S1); str(m1,S2);
        if length(S1)=1 then S1:='0'+S1;
        if length(S2)=1 then S2:='0'+S2;
        writeln(S1,':',S2);
end;
begin   {assign(input,'A1.inp'); reset(input);
        assign(output,'A1.out'); rewrite(output);}
        readln(H); readln(M);
        Xuli;
        Cal;
        {close(input); close(output);}

end.

                      const eps=0.0000000001;  besk1=200000008;  nnn=4600000;
            besk=80000000000000000;
              modul=1000000007{998244353} ;

   label 22,1,2,3,4,33;
    type    real=extended;   double=extended;
    mas=array [-300000..nnn] of int64;   point=record x,y,z:real;end;
    zap=record p1,p2,p3,p4 :int64;end; zap1=^zap;
    mass=array[-10000..nnn] of longint;mass1=^mass;
    matr=array[-10..200,-10..200] of int64;
    matr1=^matr;
    var izb,kol,oldpp,t,pos1,pos2,r,razm,kollad,leftx,rightx,lefty,righty,num,dirx,diry,oldii,obr,koludal,maxdl,mindl,tmin,aaa,bbb,ccc,kolst,kollek,aa,bb,t1,t2,kolx,koly,ans,ans1,ans2,dl,posleft,posright,n,xxx,yyy,dx,dy,m,w,h,jjj,l,cc,mnog,nn,t3,t4,t5,t6,posmax,tmax,kold,kk,j2,ttt,ppp,pmin,pmax,limit,posi,posj,diam,oldt,ot1,time,pos,ll,posx,posy,dloch,newdl,oldn,oldm,ost,ot,p1,p2,p3,p4,znamzz,kolperiod,znam,tperiod,start,finish,kol1,kol2,lavel,p0,jj,ii,ogr,q,p,pp,tt,oldtt,qq,qq1,qq2,q1,q2,imax,nm,smin,cen:int64;
   istart,jstart,ifinish,jfinish,k,i2,i3,step2,k1,k2,pp0,mask,i1,j1,step1, step, i,j:longint;
   zagr,xx,yy,kolizm,test,zz,predok,xold,yold,x1,x0,d,b,a,zsum,y,x,z:array[-200000..1535002] of int64;
    otmat,amat,bmat,cmat:matr;
   gr1,gr2,gr:array[-1..2000,-1..2000] of boolean;
    ddl,ddr:array[-1..5002,-1..5002] of longint;
    prob1,prob2,prob3,pr1new,pr2new,pr3new,pr1,pr2,pr3:zap;
    iii,oldpos,finot,vv,znak:int64;
    aold:mas;  anss:zap;
    sss,ss,ss1,ss2:string;
    newstr,str:array[-1000..200000] of string;
    lll,rrr,v,dist,alpha,phi:extended;
    masmatr:array[-1..101,-1..101,-1..101] of int64;
    zzz,ddnew,koef,polex,ddsum,dd:array[-1..4,-1..1300000] of int64;
    sum,ppos,mma,ma:array[-1000..200005,-1..5] of int64;
    xleft,xright,xplus,xminus,px,py,xc,yc,xxc,yyc:extended;
    del:array[-1..100001,-1..20] of longint;
    z0,y1,z1,z2,kolnul,fact,next,prev,s,name,dnew, voltay,c,day:mas;
    zzzz:array[0..125000000] of byte;
    aaaa,bbbb,x2:extended;
    delit:array[0..100000,0..20] of longint;
    pole:array[-10..2002,-10..2005] of char;
    ddd,matrr,ppole,dd3,dd4:array[-10..2000,-10..2200] of int64;
    ddnnew:array[-1..12,-1..12,0..200,0..3] of int64;
   newzan,marked,zanx,zany:array[-1000000..2000000] of boolean;
    ssold,sss1,sss2:string;
    def,stepen,koled,och,newoch,place,newnabor,stoim,nabor:array[-10..500005] of int64;
     zanleft,zanright,zan,fl:array[-100000..10000000] of boolean;
     dost:array[-1..210,-1..210,0..3,0..3] of int64;
    sss12:string;ch,ch1,ch2:char;
    pr,hesh,numright,dr: array [-10..206,-1..16] of int64;
    s3,s2,s1:array[-100..500000] of string;

    grr :array [-10..2010,-10..2010] of extended;
    maxpr:array[0..nnn] of string;
     tx,ty,vel,ott,v0,v1,s0,t0:int64;
     zv:point;
     left,right,ugol,rot,temp,sumtemp,vol,newx,newy:array[-1000..400000] of int64;
     mash,sqx,sqy,ottt:extended;
     xxxx,yyyy,yot:double;
       flag2,flag,flag1:boolean;

  function max(a,b:int64):int64;
begin max:=a; if b>a then max:=b;   end;

  function min(a,b:int64):int64;
begin min:=a; if b<a then min:=b;   end;

procedure udal(p:longint);
begin  next[prev[p]]:=next[p]; prev[next[p]]:=prev[p]; end;

      function nod(x,y:int64):int64; var z:int64;
begin   repeat  z:=x mod y;x:=y;y:=z;   until  z=0 ;  nod:=x;end;

     function summ(xx,yy:zap):zap1;
var t1,t2,tt:int64; ott:zap;
 begin
    t1:=(xx.p1*yy.p2+xx.p2*yy.p1) mod modul;
    t2:=(xx.p2*yy.p2) mod modul;
    tt:=nod(t1,t2);
    t1:=t1 div tt mod modul;
    t2:=t2 div tt mod modul;
    ott.p1:=t1; ott.p2:=t2;

   summ:=@ott;
 end;

     function prod(xx,yy:zap):zap1;
var t1,t2,tt:int64; ott:zap;
 begin
    t1:=(xx.p1*yy.p1) mod modul;
    t2:=(xx.p2*yy.p2) mod modul;
    tt:=nod(t1,t2);
    t1:=(t1 div tt) mod modul;
    t2:=(t2 div tt) mod modul;
    ott.p1:=t1; ott.p2:=t2;

   prod:=@ott;
 end;

    function al(x,y:real):real; var t0,t1,p,s0,s1:real;
 begin
     if (x>0)and(y>=0) then p:=arctan(y/x);
     if x<0 then p:=pi+arctan(y/x);
     if(x>0)and(y<0) then p:=2*pi+arctan(y/x);
     if x=0 then if (y>=0) then p:=pi/2 else p:=3*pi/2;
     al:=p{/pi*180};
 end;

function degg(a,k:int64):int64; var p:int64;
begin
 if k<=0 then degg:=1 else if odd(k) then degg:=degg(a,k-1)*a mod modul else
   begin  p:=degg(a,k shr 1); degg:=p*p mod modul;   end;

end;

function prost(tt:int64):boolean;
var aa:extended; i,p,t:longint;  fl:boolean;
 begin
   fl:=true;
   aa:=tt;
   aa:=sqrt(aa);
   t:=round(aa);
   for i:=2 to t do if tt mod i=0 then fl:=false;

   prost:=fl;
 end;

function arcsin(pp:extended):extended;
var tt:extended;
begin
   if (abs(pp)<=1+eps)and (abs(pp)>=1-eps)
   then if pp>0 then arcsin:=pi/2 else arcsin:=-pi/2;
   tt:=1-pp*pp;
   if abs(tt)>=0 then
     begin
        arcsin:=arctan(pp/sqrt(tt));

     end;

end;

function gl(ch:char):boolean;
begin
 if (ch='o')or (ch='a')or(ch='e')or(ch='u')or(ch='i') then gl:=true else gl:=false;

end;

function zaprmin(left,right:longint):int64;
begin
   if left>=right then zaprmin:=y[left] else
     begin
        if not odd(left) and odd(right) then zaprmin:=zaprmin(left shr 1,right shr 1) else
         begin
          if odd(left) then zaprmin:=min(zaprmin(left+1,right),y[left]);
          if not odd(right) then zaprmin:=min(zaprmin(left,right-1),y[right]);

         end;

     end;

end;

 function ff(gr:int64):boolean;

var ot,aa,bb,cc:int64; fl:boolean;
begin
  aa:=1; bb:=m;  cc:=aa; fl:=false;
  while abs(aa-bb)>1 do
    begin
       cc:=(aa+bb) shr 1;
       if y[cc]<gr then aa:=cc else bb:=cc;

    end;
   writeln(' cc= ',cc);
   cc:=min(cc+3,m+1);
   repeat dec(cc) until y[cc]<=gr;
   if y[cc]=gr then fl:=true else fl:=false;
  ff:=fl;
end;

function chislo(ss:string):int64;
var t1,t2,p1,p2,p3,p4,ot:int64;
begin
  p1:=ord(ss[1])-48;
  p2:=ord(ss[2])-48;
  p3:=ord(ss[4])-48;
  p4:=ord(ss[5])-48;
  t1:=10*p1+p2;
  t2:=10*p3+p4;
  ot:=60*t1+t2;

  chislo:=ot;

end;

begin
   { assign (input,'D:\Projects\input.txt');reset(input);
      assign (output,'D:\Projects\output.txt'); rewrite(output);
    }
     readln(ss1);
     readln(ss2);

     p1:=chislo(ss1);
     p2:=chislo(ss2);
     if p2<p1 then p2:=p2+24*60;
     p:=(p1+p2) shr 1;
     if p>=24*60 then p:=p-24*60;

    { writeln(p);
     }
   for i:=0 to 2  do for j:=0 to 9 do for i1:=0 to 5 do for j1:=0 to 9 do
     begin
       ss:=chr(i+48)+ chr(j+48)+':'+chr(i1+48)+chr(j1+48);
       if chislo(ss)=p then begin write(ss); goto 1;  end;

     end;

1:             close(output);
end.

program ideone;
uses SysUtils;
var
	s,ss:string;
	i,hh,mm:integer;

begin
	readln(s);
	readln(ss);

	hh:=(StrToInt(copy(s,1,2)) + StrToInt(copy(ss,1,2))) * 60;
	mm:=hh + strtoint(copy(s,4,2)) + strtoint(copy(ss,4,2));

	mm:= mm div 2;

	hh:= mm div 60;
	mm:= mm mod 60;

	if (hh<10) then
	    if (mm<10) then
	        writeln('0',hh,':0',mm)
	   else
	        writeln('0',hh,':',mm)
    else
        if (mm<10) then
	        writeln(hh,':0',mm)
	    else
	        writeln(hh,':',mm);
end.

program Seredina_Kontesta;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var s,t: string;
    h1,h2,m1,m2,w: integer;

begin
 readln(s);
 readln(t);
 val(copy(s,1,2),h1,w);
  val(copy(s,4,2),m1,w);
   h1:=h1*60+m1;
 val(copy(t,1,2),h2,w);
  val(copy(t,4,2),m2,w);
   h2:=h2*60+m2;
 w:=abs(h1-h2) div 2;
 if h1>h2 then h1:=h2;
 h1:=h1+w;
 m1:=h1 mod 60;
 h1:=h1 div 60;
 if h1<10 then write(0,h1,':') else write(h1,':');
 if m1<10 then write(0,m1) else write(m1);
 //readln(t);
end.

var h1, m1, h2, m2, err, kol, i : longint;
    s : string;

begin
    readln(s);
    val(copy(s, 1, pos(':', s)-1), h1, err);
    delete(s, 1, pos(':', s));
    val(s, m1, err);
    readln(s);
    val(copy(s, 1, pos(':', s)-1), h2, err);
    delete(s, 1, pos(':', s));
    val(s, m2, err);
    while true do begin
        if (h1 = h2) and (m1 = m2) then
            break;
        if m1 = 59 then begin
            inc(h1);
            m1:=0;
        end else
            inc(m1);
        inc(kol);
    end;
    for i:=1 to kol div 2 do begin
        if m2 = 0 then begin
            dec(h2);
            m2:=59;
        end else
            dec(m2);
    end;
    if h2 < 10 then
        write('0',h2)
    else
        write(h2);
    write(':');
    if m2 < 10 then
        write('0', m2)
    else
        write(m2);
end.

const fi='1133A.inp';
        fo='1133A.out';
var f,g:text;
        m,n,i,j,x1,y1,x2,y2,h:longint;
        s1,s2,st:string;
        r1,r2:real;
procedure nhap;
begin
        {assign(f,fi);reset(f);}
        readln(s1);
        read(s2);
        {close(f);}
end;
procedure xuli;
begin
        st:=copy(s1,1,2);
        val(st,x1);
        st:=copy(s2,1,2);
        val(st,x2);
        st:=copy(s1,4,2);
        val(st,y1);
        st:=copy(s2,4,2);
        val(st,y2);
        r1:=(x1+x2)/2;
        h:=trunc(r1);
        m:=(y1+y2) div 2;
        if frac(r1)<>0 then m:=m+30;
        if m>=60 then
        begin
                h:=h+1;
                m:=m mod 60;
        end;
end;
procedure xuat;
begin
        {assign(g,fo);rewrite(g);}
        str(h,s1);
        str(m,s2);
        if (length(s1)=1) then  s1:='0'+s1;
        if (length(s2)=1) then  s2:='0'+s2;
        write(s1,':',s2);
        {close(g); }
end;
begin
        nhap;
        xuli;
        xuat;
end.

const fi='input.txt';
      fo='output.txt';
var h1,h2,h3,m1,m2,m3:longint;
    a,b:string;

BEGIN
        //assign(input,fi); reset(input);
        //assign(output,fo); rewrite(output);

        readln(a);
        readln(b);

        h1:=(ord(a[1])-48)*10+(ord(a[2])-48);
        m1:=(ord(a[4])-48)*10+(ord(a[5])-48);
        h2:=(ord(b[1])-48)*10+(ord(b[2])-48);
        m2:=(ord(b[4])-48)*10+(ord(b[5])-48);

        h3:=h2-h1;
        m3:=m2-m1;
        if m3<0 then begin
                m3:=m3+60;
                dec(h3);
        end;
        m3:=m1+m3 div 2;
        if h3 mod 2>0 then m3:=m3+30;
        h3:=h1+h3 div 2;
        if m3>60 then begin
                m3:=m3 mod 60;
                inc(h3);
        end;

        if m3>=60 then begin
                h3:=h3+m3 div 60;
                m3:=m3 mod 60;
        end;

        if h3<10 then write(0,h3) else write(h3);
        write(':');
        if m3<10 then write(0,m3) else write(m3);

        //close(input);
        //close(output);
END.

program i1;
var stime, etime: string;
    stimeh, stimem, etimeh, etimem, error, mid: integer;
begin
    readln(stime);
    readln(etime);

    val(copy(stime, 1, 2), stimeh, error);
    val(copy(etime, 1, 2), etimeh, error);
    val(copy(stime, length(stime)-1, 2), stimem, error);
    val(copy(etime, length(etime)-1, 2), etimem, error);

    mid := ((60*etimeh - 60*stimeh) +(etimem - stimem)) div 2;

    stimeh := stimeh + mid div 60;

    stimem := stimem + mid mod 60;

    if stimem >= 60 then
    begin

        stimeh := stimeh + stimem div 60;
        stimem := stimem mod 60;
    end;

    if stimeh < 10 then write(0);
    write(stimeh, ':');
    if stimem < 10 then write(0);
    write(stimem);
end.

Program A1;
uses math;
var H,M,S1,S2,S3,S4:string; h1,h2,m1,m2:byte; i,code:longint;
Procedure Xuli;
begin   S1:=''; S2:=''; S3:=''; S4:='';
        for i:=1 to length(h) do
        if H[i]<>':' then
        S1:=S1+H[i]
        else begin S2:=copy(H,i+1,2);
                   break;
             end;
        for i:=1 to length(M) do
        if M[i]<>':' then
        S3:=S3+M[i]
        else begin S4:=copy(M,i+1,2);
                   break;
             end;
        val(S1,h1,code); val(S2,m1,code);
        val(S3,h2,code); val(S4,m2,code);
end;
Procedure Cal;
begin   m2:=(h2-h1)*60+m2;
        m1:=m2+m1;
        h1:=h1+(m1 div 60) div 2;
        m1:=(m1 mod 60) div 2;
        str(h1,S1); str(m1,S2);
        if length(S1)=1 then S1:='0'+S1;
        if length(S2)=1 then S2:='0'+S2;
        writeln(S1,':',S2);
end;
begin   readln(H); readln(M);
        Xuli;
        Cal;
        close(input); close(output);

end.

Program A1;
uses math;
var S1,S2,h1s,h2s,m1s,m2s,r1,r2:string; i,h1,h2,m1,m2,code,ha,ma:longint;
Procedure Returnback;
begin   h1s:=''; h2s:=''; m1s:=''; m2s:='';
        for i:=1 to length(S1) do
        if i<=2 then begin
        h1s:=h1s+S1[i];
        h2s:=h2s+S2[i];
        end else if i>3 then begin
        m1s:=m1s+S1[i];
        m2s:=m2s+S2[i];
        end;
end;
Procedure Calculate;
begin   val(h1s,h1,code); val(m1s,m1,code);
        val(h2s,h2,code); val(m2s,m2,code);
        if m2=0 then begin
        dec(h2); m2:=m2+60;
        end;
        ha:=(h1+h2) div 2; ma:=(m1+m2) div 2;
        str(ha,r1); str(ma,r2);
        if ha<10 then r1:='0'+r1;
        if ma<10 then r2:='0'+r2;
        writeln(r1,':',r2);
end;
begin   readln(S1); readln(S2);
        Returnback;
        Calculate;
end.

Program A1;
uses math;
var S1,S2,h1s,h2s,m1s,m2s,r1,r2:string; i,h1,h2,m1,m2,code,ha,ma:longint;
Procedure Returnback;
begin   h1s:=''; h2s:=''; m1s:=''; m2s:='';
        for i:=1 to length(S1) do
        if i<=2 then begin
        h1s:=h1s+S1[i];
        h2s:=h2s+S2[i];
        end else if i>3 then begin
        m1s:=m1s+S1[i];
        m2s:=m2s+S2[i];
        end;
end;
Procedure Calculate;
begin   val(h1s,h1,code); val(m1s,m1,code);
        val(h2s,h2,code); val(m2s,m2,code);
        if m2=0 then begin
        dec(h2); m2:=m2+60;
        end;
        if h2=0 then h2:=24;
        ha:=(h1+h2) div 2; ma:=(m1+m2) div 2;
        str(ha,r1); str(ma,r2);
        if ma<10 then r2:='0'+r2;
        writeln(r1,':',r2);
end;
begin   readln(S1); readln(S2);
        Returnback;
        Calculate;
end.

Program A1;
uses math;
var S1,S2,h1s,h2s,m1s,m2s,r1,r2:string; i,h1,h2,m1,m2,code,ha,ma:longint;
Procedure Returnback;
begin   h1s:=''; h2s:=''; m1s:=''; m2s:='';
        for i:=1 to length(S1) do
        if i<=2 then begin
        h1s:=h1s+S1[i];
        h2s:=h2s+S2[i];
        end else if i>3 then begin
        m1s:=m1s+S1[i];
        m2s:=m2s+S2[i];
        end;
end;
Procedure Calculate;
begin   ha:=0; ma:=0;
        val(h1s,h1,code); val(m1s,m1,code);
        val(h2s,h2,code); val(m2s,m2,code);
        if m2<=m1 then begin
        dec(h2); m2:=m2+60;
        end;
        if (h1+h2) mod 2<>0 then ha:=ha+1;
        ha:=ha+(h1+h2) div 2; ma:=ma+(m1+m2) div 2;
        str(ha,r1); str(ma,r2);
        if ha<10 then r1:='0'+r1;
        if ma<10 then r2:='0'+r2
        else if ma=60 then begin
                           r2:='00';
                           inc(ha);
                           str(ha,r1);
                           r1:='0'+r1;
                           end;
        writeln(r1,':',r2);
end;
begin   readln(S1); readln(S2);
        Returnback;
        Calculate;
end.

Program A1;
uses math;
var S1,S2,h1s,h2s,m1s,m2s,r1,r2:string; i,h1,h2,m1,m2,code,ha,ma:longint;
Procedure Returnback;
begin   h1s:=''; h2s:=''; m1s:=''; m2s:='';
        for i:=1 to length(S1) do
        if i<=2 then begin
        h1s:=h1s+S1[i];
        h2s:=h2s+S2[i];
        end else if i>3 then begin
        m1s:=m1s+S1[i];
        m2s:=m2s+S2[i];
        end;
end;
Procedure Calculate;
begin   val(h1s,h1,code); val(m1s,m1,code);
        val(h2s,h2,code); val(m2s,m2,code);
        if m2<m1 then begin
        dec(h2); m2:=m2+60;
        end;
        ha:=(h1+h2) div 2; ma:=(m1+m2) div 2;
        str(ha,r1); str(ma,r2);
        if ha<10 then r1:='0'+r1;
        if ma<10 then r2:='0'+r2
        else if ma=60 then begin
                           r2:='00';
                           inc(ha);
                           str(ha,r1);
                           end;
        writeln(r1,':',r2);
end;
begin   readln(S1); readln(S2);
        Returnback;
        Calculate;
end.

program i1;
var stime, etime: string;
    stimeh, stimem, etimeh, etimem, error, mid: integer;
begin
    readln(stime);
    readln(etime);

    val(copy(stime, 1, 2), stimeh, error);
    val(copy(etime, 1, 2), etimeh, error);
    val(copy(stime, length(stime)-1, 2), stimem, error);
    val(copy(etime, length(etime)-1, 2), etimem, error);

    stimeh := stimeh * 60;
    etimeh := etimeh * 60;

    mid := ((etimeh - stimeh) +(etimem - stimem)) div 2;

    stimem := stimem + mid mod 60;
    if stimem = 60 then
    begin
        inc(stimeh, 60);
        stimem := 0;
    end;
    stimeh := stimeh div 60 + mid div 60;
     if stimeh = 24 then
    begin
        stimeh := 0;
    end;
    if stimeh < 10 then write(0);
    write(stimeh, ':');
    if stimem < 10 then write(0);
    writeln(stimem);

end.

program i1;
var stime, etime: string;
    stimeh, stimem, etimeh, etimem, error, mid: integer;
begin
    readln(stime);
    readln(etime);

    val(copy(stime, 1, 2), stimeh, error);
    val(copy(etime, 1, 2), etimeh, error);
    val(copy(stime, length(stime)-1, 2), stimem, error);
    val(copy(etime, length(etime)-1, 2), etimem, error);

    stimeh := stimeh * 60;
    etimeh := etimeh * 60;

    mid := ((etimeh - stimeh) +(etimem - stimem)) div 2;

    stimem := stimem + mid mod 60;
    stimeh := stimeh div 60 + mid div 60;
    if stimeh < 10 then write(0);
    write(stimeh, ':');
    if stimem < 10 then write(0);
    write(stimem);

end.

program i1;
var stime, etime: string;
    stimeh, stimem, etimeh, etimem, error, mid: integer;
begin
    readln(stime);
    readln(etime);

    val(copy(stime, 1, 2), stimeh, error);
    val(copy(etime, 1, 2), etimeh, error);
    val(copy(stime, length(stime)-1, 2), stimem, error);
    val(copy(etime, length(etime)-1, 2), etimem, error);

    stimeh := stimeh * 60;
    etimeh := etimeh * 60;

    mid := (abs(etimeh - stimeh) +abs(etimem - stimem)) div 2;
    stimeh := stimeh div 60;
    stimem := stimem + mid mod 60;
    if stimem >= 60 then
    begin
        inc(stimeh);
        stimem := mid mod 60;
    end;
    stimeh := stimeh + mid div 60;
    if stimeh = 24 then
        stimeh := 0;
    if stimeh < 10 then write(0);
    write(stimeh, ':');
    if stimem < 10 then write(0);
    write(stimem);
end.

program i1;
var stime, etime: string;
    stimeh, stimem, etimeh, etimem, error, mid: integer;
begin
    readln(stime);
    readln(etime);

    val(copy(stime, 1, 2), stimeh, error);
    val(copy(etime, 1, 2), etimeh, error);
    val(copy(stime, length(stime)-1, 2), stimem, error);
    val(copy(etime, length(etime)-1, 2), etimem, error);

    stimeh := stimeh * 60;
    etimeh := etimeh * 60;

    mid := (abs(etimeh - stimeh) +abs(etimem - stimem)) div 2;
    stimeh := stimeh div 60;
    stimem := stimem + mid mod 60;
    if stimem >= 60 then
    begin
        inc(stimeh);
        stimem := mid mod 60;
    end;
    stimeh := stimeh + mid div 60;

    if stimeh < 10 then write(0);
    write(stimeh, ':');
    if stimem < 10 then write(0);
    write(stimem);
end.

program i1;
var stime, etime: string;
    stimeh, stimem, etimeh, etimem, error, mid: integer;
begin
    readln(stime);
    readln(etime);

    val(copy(stime, 1, 2), stimeh, error);
    val(copy(etime, 1, 2), etimeh, error);
    val(copy(stime, length(stime)-1, 2), stimem, error);
    val(copy(etime, length(etime)-1, 2), etimem, error);

    stimeh := stimeh * 60;
    etimeh := etimeh * 60;

    mid := ((etimeh - stimeh) +(etimem - stimem)) div 2;

    stimem := stimem + mid mod 60;
    if stimem = 60 then
    begin
        inc(stimeh, 60);
        stimem := 0;
    end;
    stimeh := stimeh div 60 + mid div 60;
    if stimeh < 10 then write(0);
    write(stimeh, ':');
    if stimem < 10 then write(0);
    write(stimem);

end.

program i1;
var stime, etime: string;
    stimeh, stimem, etimeh, etimem, error, mid: integer;
begin
    readln(stime);
    readln(etime);

    val(copy(stime, 1, 2), stimeh, error);
    val(copy(etime, 1, 2), etimeh, error);
    val(copy(stime, length(stime)-1, 2), stimem, error);
    val(copy(etime, length(etime)-1, 2), etimem, error);

    stimeh := stimeh * 60;
    etimeh := etimeh * 60;

    mid := (abs(etimeh - stimeh) +abs(etimem - stimem)) div 2;
    stimeh := stimeh div 60;
    stimem := stimem + mid mod 60;
    if stimem >= 60 then
    begin
        inc(stimeh, stimem div 60);
        stimem := mid mod 60;
    end;
    stimeh := stimeh + mid div 60;
    if stimeh = 24 then
        stimeh := 0;
    if stimeh < 10 then write(0);
    write(stimeh, ':');
    if stimem < 10 then write(0);
    write(stimem);
end.

program i1;
var stime, etime: string;
    stimeh, stimem, etimeh, etimem, error, mid: integer;
begin
    readln(stime);
    readln(etime);

    val(copy(stime, 1, 2), stimeh, error);
    val(copy(etime, 1, 2), etimeh, error);
    val(copy(stime, length(stime)-1, 2), stimem, error);
    val(copy(etime, length(etime)-1, 2), etimem, error);

    mid := ((60*etimeh - 60*stimeh) +(etimem - stimem)) div 2;

    stimeh := stimeh + mid div 60;

    stimem := stimem + mid mod 60;

    if stimem >= 60 then
    begin
        stimem := stimem mod 60;
        stimeh := stimeh + stimem div 60;
    end;

    if stimeh < 10 then write(0);
    write(stimeh, ':');
    if stimem < 10 then write(0);
    write(stimem);
end.

const fi='';
      fo='';
var f:text;
    s,s1,st,st1,kqs:ansistring;
    so,so1,d,d1,kq:longint;

begin
   assign(f,fi);reset(f);
   readln(f,st);
   readln(f,st1);

   assign(f,fo);rewrite(f);
   s:=st[1]+st[2]+st[4]+st[5];
   s1:=st1[1]+st1[2]+st1[4]+st1[5];
   val(s,so);
   val(s1,so1);
   d:=so1-so;
   if d=100 then d1:=30 else d1:=d div 2;
   kq:=d1+so;
   str(kq,kqs);
   if length(kqs)=3 then kqs:='0'+kqs;
   insert(':',kqs,3);
   write(f,kqs);
   close(f);
end.

Var S,F,SS1,SS2:String;
    num1,num2,num3,num4:Longint;
Begin
    Readln(S); Readln(F);
    Val(Copy(S,1,2),num1);
    Val(Copy(S,4,2),num2);
    Val(Copy(F,1,2),num3);
    Val(Copy(F,4,2),num4);
    Str((num1+num3) div 2,SS1);
    Str((num2+num4) div 2 + (num1+num3) mod 2 * 30,SS2);
    If length(SS1)=1 then SS1:='0'+SS1;
    If length(SS2)=1 then SS2:='0'+SS2;
    Writeln(SS1+':'+SS2);
End.

Var  a,b:array[0..6] of byte;
     kq,kq1,kq2,kq3,m,m1,i:integer;
     s,ss,t,t1:string;

Begin
  Assign(input,'');
  Assign(output,'');
  Reset(input);
  Rewrite(output);
  Readln(s);
  Readln(ss);

  For i:=1 to length(s) do
   if (s[i]<>':') then
    begin
      a[i]:=ord(s[i]) - 48;
      b[i]:=ord(ss[i]) - 48;
    end;
  kq:= 10*a[1]+a[2];
  kq1:=10*b[1]+b[2];
  kq2:= 10*a[4]+a[5];
  kq3:= 10*b[4]+b[5];
   m:= (kq+kq1) div 2;
   m1:=(kq2+kq3) div 2;
   If (m1 >60) then
    begin
     m:=m+1;
     m1:=m1-60;
    end;
  If (kq2 =0) and (kq3=0) then
   begin

    str(m,t1);
    t1:=t1+':';
    t1:=t1+'30';
   end
     else
       begin
        t1:='';
        t:='';
        str(m,t1);
        str(m1,t);
        If (length(t1)<>2) then t1:='0'+t1;
        If (length(t)<>2) then t:='0'+t;
        t1:= t1+':';
        t1:=t1+t;
       end;
   Writeln(t1);
  Close(input);
  Close(output);
End.

Var  a,b:array[0..6] of byte;
     kq,kq1,kq2,kq3,m,m1,i,kq4:integer;
     s,ss,t,t1:string;

Begin
  Assign(input,'');
  Assign(output,'');
  Reset(input);
  Rewrite(output);
  Readln(s);
  Readln(ss);

  For i:=1 to length(s) do
   if (s[i]<>':') then
    begin
      a[i]:=ord(s[i]) - 48;
      b[i]:=ord(ss[i]) - 48;
    end;
  kq:= 10*a[1]+a[2];
  kq1:=10*b[1]+b[2];
  kq2:= 10*a[4]+a[5];
  kq3:= 10*b[4]+b[5];
  // m:= (kq+kq1) div 2;
 //  m1:=(kq2+kq3) div 2;
 //  If (m1 >60) then
 //   begin
  //   m:=m+1;
    // m1:=m1-60;
  //  end;
  If (kq2 =0) and (kq3=0) then
   begin
    m:= (kq+kq1) div 2;
    str(m,t1);
    t1:=t1+':';
    t1:=t1+'30';
   end
     else
      begin
       m:=(kq1*60+kq3)-(kq*60+kq2);
       m:= m div 2;
       kq4:=kq2+m;
       m1:= kq4 div 60;
       kq:=kq+m1;
       str(kq,t1);
       If (length(t1)<>2) then t1:='0'+t1;
       kq4:=kq4 - (m1*60);
       str(kq4,t);
       If (length(t)<>2) then t:='0'+t;
       t1:=t1+':';
       t1:=t1+t;
      end;
   Writeln(t1);
  Close(input);
  Close(output);
End.

Var  a,b:array[0..6] of byte;
     kq,kq1,kq2,kq3,m,m1,i:integer;
     s,ss,t,t1:string;

Begin
  Assign(input,'');
  Assign(output,'');
  Reset(input);
  Rewrite(output);
  Readln(s);
  Readln(ss);

  For i:=1 to length(s) do
   if (s[i]<>':') then
    begin
      a[i]:=ord(s[i]) - 48;
      b[i]:=ord(ss[i]) - 48;
    end;
  kq:= 10*a[1]+a[2];
  kq1:=10*b[1]+b[2];
  kq2:= 10*a[4]+a[5];
  kq3:= 10*b[4]+b[5];
   m:= (kq+kq1) div 2;
   m1:=(kq2+kq3) div 2;
  If (kq2 =0) and (kq3=0) then
   begin

    str(m,t1);
    t1:=t1+':';
    t1:=t1+'30';
   end
     else
       begin
        t1:='';
        t:='';
        str(m,t1);
        str(m1,t);
        If (length(t1)<>2) then t1:='0'+t1;
        If (length(t)<>2) then t:='0'+t;
        t1:= t1+':';
        t1:=t1+t;
       end;
   Writeln(t1);
  Close(input);
  Close(output);
End.

Var  a,b:array[0..6] of byte;
     kq,kq1,kq2,kq3,m,m1,i:integer;
     s,ss,t,t1:string;

Begin
  Assign(input,'');
  Assign(output,'');
  Reset(input);
  Rewrite(output);
  Readln(s);
  Readln(ss);

  For i:=1 to length(s) do
   if (s[i]<>':') then
    begin
      a[i]:=ord(s[i]) - 48;
      b[i]:=ord(ss[i]) - 48;
    end;
  kq:= 10*a[1]+a[2];
  kq1:=10*b[1]+b[2];
  kq2:= 10*a[4]+a[5];
  kq3:= 10*a[4]+a[5];
   m:= (kq+kq1) div 2;
   m1:=(kq2+kq3) div 2;
  If (kq2 =0) and (kq3=0) then
   begin

    str(m,t1);
    t1:=t1+':';
    t1:=t1+'30';
   end
     else
       begin
        t1:='';
        t:='';
        str(m,t1);
        str(m1,t);
        If (length(t1)<>2) then t1:='0'+t1;
        If (length(t)<>2) then t:='0'+t;
        t1:= t1+':';
        t1:=t1+t;
       end;
   Writeln(t1);
  Close(input);
  Close(output);
End.

program jam;

var
s:string;
jam1,jam2:longint;
menit1,menit2:longint;
temp1,temp2:string;
selisihJam,selisihMenit:longint;
tambahanJam:longint;
tambahanMenit:longint;
totalMenit:longint;
hasilMenit,hasilJam:longint;

begin
	readln (s);
	temp1 := s[1] + s[2];
	temp2 := s[4] + s[5];
	val (temp1, jam1);
	val (temp2, menit1);
	readln (s);
	temp1 := s[1] + s[2];
	temp2 := s[4] + s[5];
	val (temp1, jam2);
	val (temp2, menit2);
	selisihJam := jam2 - jam1;
	selisihMenit := menit2 - menit1;
	totalMenit := (60*selisihJam) + selisihMenit;
	totalMenit := totalMenit div 2;
	tambahanJam := totalMenit div 60;
	tambahanMenit := totalMenit mod 60;
	hasilJam := jam1+tambahanJam;
	hasilMenit := menit1+tambahanMenit;
	if (hasilMenit > 60) then
	begin
		hasilJam := hasilJam + (hasilMenit div 60);
		hasilMenit := hasilMenit mod 60;
	end;
	if (hasilJam < 10) then
	begin
		if (hasilMenit < 10) then
		begin
			writeln ('0',hasilJam,':0',hasilMenit);
		end else
		begin
			writeln ('0',hasilJam,':',hasilMenit);
		end;
	end else
	begin
		if (hasilMenit < 10) then
		begin
			writeln (hasilJam,':0',hasilMenit);
		end else
		begin
			writeln (hasilJam,':',hasilMenit);
		end;
	end;
end.

var
i,n,a,b,c,d,a1,b1,c1,d1,g:integer;
s1,s2,s,s3,s4,s5: string;

begin
readln(s1);
for i:=1 to length(s1)
do
if s1[i]=(':') then  n:=i;
s2:=copy(s1,1,n-1);
val (s2,a,b);
s2:=copy(s1,n+1,length(s1));
val (s2,c,d);

readln(s3);
for i:=1 to length(s3)
do
if s3[i]=(':') then  n:=i;
s4:=copy(s3,1,n-1);
val (s4,a1,b1);
s5:=copy(s3,n+1,length(s3));
val (s5,c1,d1);
g:=a;
a:= a*100 + c;
a1:= a1*100 + c1;
b:= a1-a;
d:= b div 100;
b1:= d*60+ b mod 100;
b:=b1 div 2;

b:= b+c;

b1:= b mod 60;
c:= b div 60;
 writeln(c);

if b1 div 10 <>0 then writeln((g+c),':',b1);
if b1 div 10 =0 then writeln((g+c),':','0',b1);

end.

var
 s1,s2:string;
 ch1,ch2,n,i,m1,m2,sum1,sum2,sum:integer;
begin
  readln(s1);
  readln(s2);
  ch1:=strtoint(copy(s1,1,2));
  ch2:=strtoint(copy(s2,1,2));
  m1:=strtoint(copy(s1,4,2));
  m2:=strtoint(copy(s2,4,2));
  //writeln(ch1,' ',m1);
  //writeln(ch2,' ',m2);
  sum1:=ch1 * 60 + m1;
  sum2:= ch2*60 + m2;
  sum1:=sum1 div 2;
  sum2:=sum2 div 2;
  sum:=sum1+sum2;
  ch1:=sum div 60;
  m2:=sum mod 60;
  s1:=inttostr(ch1);
  if length(s1)<2 then
    s1:='0'+s1;
  s2:=inttostr(m2);
   if length(s2)<2 then
    s2:='0'+s2;
  writeln(s1,':',s2);

end.

program kontest;
var
h1,h2,m1,m2,h3,m3:byte;
dlit:word;
s,s1:string;
err:integer;
begin
Readln(s);
s1:=Copy(s,1,2);
Val(s1,h1,err);
s1:=Copy(s,4,2);
Val(s1,m1,err);
Readln(s);
s1:=Copy(s,1,2);
Val(s1,h2,err);
s1:=Copy(s,4,2);
Val(s1,m2,err);
h3:=h2-h1;
m3:=m2-m1;
dlit:=60*h3+m3;
dlit:=dlit div 2;
h1:=h1+dlit div 60;
m1:=m1+dlit mod 60;
if m1>=60 then
  begin
  h1+=1;
  m1:=m1 mod 60;
  end;
if h1<10 then write(0,h1,':') else write(h1,':');
if m1<10 then write(0,m1) else write(m1);
end.

Program CF_1133A;
var m1,m2,h1,h2,i,l,l1,f,m,k:integer;
    st1,st2,s,s1:string;
Begin
  readln(st1);
  readln(st2);
  s:=st1;
  delete(s,3,3);
  Val(s,h1,f);
  s1:=st2;
  delete(s1,3,3);
  Val(s1,h2,f);
  l:=h2-h1;
  s:=st1;
  delete(s,1,3);
  Val(s,m1,f);
  s1:=st2;
  delete(s1,1,3);
  Val(s1,m2,f);
  if (m1=0)and(m2=0) then begin
                           h2:=h2-1-h1;
                           m2:=m2+60;
                           l:=h1+(h2 div 2);
                           l1:=(m2-m1) div 2;
                          end
                      else if m1>m2 then begin
                                          h2:=h2-1;
                                          m2:=m2+60;
                                          h2:=h2-h1;
                                          l:=h1+(h2 div 2);
                                          l1:=(m2+m1) div 2;

                                         end

                               else if h1=h2 then begin
                                                    l:=h1;
                                                    l1:=(m2+m1) div 2;
                                                  end
                                             else begin
                                                    if (h2-h1) mod 2 = 1 then begin h2:=h2-1;m2:=m2+60;end;
                                                    h2:=h2-h1;
                                                    l:=h1+(h2 div 2);
                                                    l1:=(m2+m1) div 2;
                                                 end;
 if l1>=60 then begin l:=l+1;l1:=l1 mod 60;end;
 if l<=9 then write(0);
 write(l);
 write(':');
 if l1<=9 then write(0);
 write(l1);
end.

Program CF_1133A;
var m1,m2,h1,h2,i,l,l1,f,m,k:integer;
    st1,st2,s,s1:string;
Begin
  readln(st1);
  readln(st2);
  s:=st1;
  delete(s,3,3);
  Val(s,h1,f);
  s1:=st2;
  delete(s1,3,3);
  Val(s1,h2,f);
  s:=st1;
  delete(s,1,3);
  Val(s,m1,f);
  s1:=st2;
  delete(s1,1,3);
  Val(s1,m2,f);
  if (m1=0)and(m2=0) then begin
                           if (h2-h1) mod 2 = 1 then  begin
                                                        m2:=m2+60;
                                                        l:=h1+(h2 div 2);
                                                        l1:=(m2-m1) div 2;
                                                      end
                                                else begin
                                                        l:=(h2+h1) div 2;
                                                        l1:=0;
                                                     end;

                          end
                      else if m1>m2 then begin
                                          h2:=h2-1;
                                          m2:=m2+60;
                                          h2:=h2-h1;
                                          l:=h1+(h2 div 2);
                                          l1:=(m2+m1) div 2;

                                         end

                               else if h1=h2 then begin
                                                    l:=h1;
                                                    l1:=(m2+m1) div 2;
                                                  end
                                             else begin
                                                    if (h2-h1) mod 2 = 1 then begin h2:=h2-1;m2:=m2+60;end;
                                                    h2:=h2-h1;
                                                    l:=h1+(h2 div 2);
                                                    l1:=(m2+m1) div 2;
                                                 end;
 if l1>=60 then begin l:=l+1;l1:=l1 mod 60;end;
 if l<=9 then write(0);
 write(l);
 write(':');
 if l1<=9 then write(0);
 write(l1);
end.

Program CF_1133A;
var m1,m2,h1,h2,i,l,l1,f,m,k:integer;
    st1,st2,s,s1:string;
Begin
  readln(st1);
  readln(st2);
  s:=st1;
  delete(s,3,3);
  Val(s,h1,f);
  s1:=st2;
  delete(s1,3,3);
  Val(s1,h2,f);
  l:=h2-h1;
  s:=st1;
  delete(s,1,3);
  Val(s,m1,f);
  s1:=st2;
  delete(s1,1,3);
  Val(s1,m2,f);
  if (m1>m2)or(m1=0)and(m2=0) then begin
                                    h2:=h2-1-h1;
                                    m2:=m2+60;
                                     l:=h1+(h2 div 2);
                                    l1:=(m2-m1) div 2;
                                   end

                               else if h1=h2 then begin
                                                    l:=h1;
                                                    l1:=(m2+m1) div 2;
                                                  end
                                             else begin
                                                    if (h2-h1) mod 2 = 1 then begin h2:=h2-1;m2:=m2+60;end;
                                                    h2:=h2-h1;
                                                    l:=h1+(h2 div 2);
                                                    l1:=(m2+m1) div 2;
                                                 end;

 if l<=9 then write(0);
 write(l);
 write(':');
 if l1<=9 then write(0);
 write(l1);
end.

Program CF_1133A;
var m1,m2,h1,h2,i,l,l1,f,m,k:integer;
    st1,st2,s,s1:string;
Begin
  readln(st1);
  readln(st2);
  s:=st1;
  delete(s,3,3);
  Val(s,h1,f);
  s1:=st2;
  delete(s1,3,3);
  Val(s1,h2,f);
  l:=h2-h1;
  s:=st1;
  delete(s,1,3);
  Val(s,m1,f);
  s1:=st2;
  delete(s1,1,3);
  Val(s1,m2,f);
  if (m1>m2)or(m1=0)and(m2=0) then begin
                                    h2:=h2-1-h1;
                                    m2:=m2+60;
                                     l:=h1+(h2 div 2);
                                    l1:=(m2-m1) div 2;
                                   end

                               else if h1=h2 then begin
                                                    l:=h1;
                                                    l1:=(m2+m1) div 2;
                                                  end
                                             else begin
                                                    h2:=h2-h1;
                                                    l:=h1+(h2 div 2);
                                                    l1:=(m2+m1) div 2;
                                                 end;

 if l<=9 then write(0);
 write(l);
 write(':');
 if l1<=9 then write(0);
 write(l1);
end.

Program CF_1133A;
var m1,m2,h1,h2,i,l,l1,f,m,k:integer;
    st1,st2,s,s1:string;
Begin
  readln(st1);
  readln(st2);
  s:=st1;
  delete(s,3,3);
  Val(s,h1,f);
  s1:=st2;
  delete(s1,3,3);
  Val(s1,h2,f);
  l:=h2-h1;
  s:=st1;
  delete(s,1,3);
  Val(s,m1,f);
  s1:=st2;
  delete(s1,1,3);
  Val(s1,m2,f);
  if (m1>m2)or(m1=0)and(m2=0) then begin
                                    h2:=h2-1-h1;
                                    m2:=m2+60;
                                     l:=h1+(h2 div 2);
                                    l1:=(m2-m1) div 2;
                                    writeln(l:2,':',l1:2)
                                   end

                               else if h1=h2 then begin
                                                    l1:=(m2+m1) div 2;
                                                    writeln(h1:2,':',l1:2)
                                                  end
                                             else begin
                                                    h2:=h2-h1;
                                                    l:=h1+(h2 div 2);
                                                    l1:=(m2+m1) div 2;
                                                    writeln(l:2,':',l1:2)
                                                  end;
end.

Program CF_1133A;
var m1,m2,h1,h2,i,l,l1,f,m,k:integer;
    st1,st2,s,s1:string;
Begin
  readln(st1);
  readln(st2);
  s:=st1;
  delete(s,3,3);
  Val(s,h1,f);
  s1:=st2;
  delete(s1,3,3);
  Val(s1,h2,f);
  l:=h2-h1;
  s:=st1;
  delete(s,1,3);
  Val(s,m1,f);
  s1:=st2;
  delete(s1,1,3);
  Val(s1,m2,f);
  if (m1>m2)or(m1=0)and(m2=0) then begin
                                    h2:=h2-1-h1;
                                    m2:=m2+60;
                                     l:=h1+(h2 div 2);
                                    l1:=(m2-m1) div 2;
                                   end

                               else if h1=h2 then begin
                                                    l:=h1;
                                                    l1:=(m2+m1) div 2;
                                                  end
                                             else begin
                                                    if (h2-h1) mod 2 = 1 then begin h2:=h2-1;m2:=m2+60;end;
                                                    h2:=h2-h1;
                                                    l:=h1+(h2 div 2);
                                                    l1:=(m2+m1) div 2;
                                                 end;
 if l1=60 then begin l:=l+1;l1:=0;end;
 if l<=9 then write(0);
 write(l);
 write(':');
 if l1<=9 then write(0);
 write(l1);
end.

var
s1,s2,wh1,wm1,ans:string;
q1,q2,qq,m1,m2,h1,hq,mq,h2:integer;
begin
readln(s1);
readln(s2);
h1:=strtoint(copy(s1,1,2));
h2:=strtoint(copy(s2,1,2));
m1:=strtoint(copy(s1,4,2));
m2:=strtoint(copy(s2,4,2));
hq:=(h2-h1) div 2;
mq:=(m2-m1) div 2;
q1:=h1+hq;
q2:=m1+mq;
if q2>59 then begin q2:=q2-60; inc(q1); end;
wh1:=inttostr(q1);
wm1:=inttostr(q2);
if length(wh1)=1 then wh1:='0'+wh1;
if length(wm1)=1 then wm1:='0'+wm1;
ans:=wh1+':'+wm1;
write(ans);
end.

var h1,m1,h2,m2,m,hsrd,hsrm,msrd : longint;
    s1,s2,h1s,m1s,h2s,m2s : string;
begin
   readln(s1);
   readln(s2);
   h1s:=copy(s1,1,2);
   m1s:=copy(s1,4,2);
   h2s:=copy(s2,1,2);
   m2s:=copy(s2,4,2);
   val(h1s,h1,m);
   val(m1s,m1,m);
   val(h2s,h2,m);
   val(m2s,m2,m);
   hsrd:=(h2-h1) div 2;
   msrd:=(m2-m1) div 2;
   hsrm:=(h2-h1) mod 2;
   if hsrd>=1 then h1:=h1+hsrd;
   if hsrm>0 then m1:=m1+30;
   m1:=m1+msrd;
   if h1<10 then write(0,h1,':')
            else write(h1,':');
   if m1<10 then writeln(0,m1)
            else writeln(m1);
end.

var
     hour,min,s1,s2:string;
     k1,l1,k2,l2,s: integer;
begin
readln(s1);
readln(s2);
k1:=strtoint(s1[1])*10+strtoint(s1[2]);
l1:=strtoint(s1[4])*10+strtoint(s1[5]);
k2:=strtoint(s2[1])*10+strtoint(s2[2]);
l2:=strtoint(s2[4])*10+strtoint(s2[5]);
s:=(abs(k1-k2)*60+abs(l1-l2))div 2;
if k1+(s div 60)div 2<10 then hour:='0'+inttostr(k1+(s div 60)) else hour:=inttostr(k1+(s div 60));
if l1+(s mod 60)div 2<10 then min:='0'+inttostr(l1+(s mod 60)) else min:=inttostr(l1+(s mod 60));
write(hour,':',min);
end.

var
     hour,min,s1,s2:string;
     k1,l1,k2,l2,s: integer;
begin
readln(s1);
readln(s2);
k1:=strtoint(s1[1])*10+strtoint(s1[2]);
l1:=strtoint(s1[4])*10+strtoint(s1[5]);
k2:=strtoint(s2[1])*10+strtoint(s2[2]);
l2:=strtoint(s2[4])*10+strtoint(s2[5]);
s:=(abs(k1-k2)*60+abs(l1-l2))div 2;
if k1+(s div 60)div 2<10 then hour:='0'+inttostr(k1+(s div 60))+'0' else hour:=inttostr(k1+(s div 60));
if l1+(s mod 60)div 2<10 then min:='0'+inttostr(l1+(s mod 60)) else min:=inttostr(l1+(s mod 60));
write(hour,':',min);
end.

var
  s1, s2: string;
  x: longint;

function p(c: char): longint;
begin
  result := ord(c) - ord('0');
end;

function f(s: string): longint;
begin
  result := (p(s[1]) * 10 + p(s[2])) * 60 + p(s[4]) * 10 + p(s[5]);
end;

begin
  readln(s1);
  readln(s2);
  x := (f(s1) + f(s2)) div 2;
  write(x div 60, ':', x mod 60);
end.

program ideone;
uses SysUtils;
var
	s,ss:string;
	i,hh,mm:integer;

begin
	readln(s);
	readln(ss);

	hh:=(StrToInt(copy(s,1,2)) + StrToInt(copy(ss,1,2))) * 60;
	mm:=hh + strtoint(copy(s,4,2)) + strtoint(copy(ss,4,2));

	mm:= mm div 2;

	hh:= mm div 60;
	mm:= mm mod 60;

	writeln(hh,':',mm);
end.