Polycarp is going to participate in the contest. It starts at $$$h_1:m_1$$$ and ends at $$$h_2:m_2$$$. It is guaranteed that the contest lasts an even number of minutes (i.e. $$$m_1 \% 2 = m_2 \% 2$$$, where $$$x \% y$$$ is $$$x$$$ modulo $$$y$$$). It is also guaranteed that the entire contest is held during a single day. And finally it is guaranteed that the contest lasts at least two minutes.Polycarp wants to know the time of the midpoint of the contest. For example, if the contest lasts from $$$10:00$$$ to $$$11:00$$$ then the answer is $$$10:30$$$, if the contest lasts from $$$11:10$$$ to $$$11:12$$$ then the answer is $$$11:11$$$.

The first line of the input contains two integers $$$h_1$$$ and $$$m_1$$$ in the format hh:mm. The second line of the input contains two integers $$$h_2$$$ and $$$m_2$$$ in the same format (hh:mm). It is guaranteed that $$$0 \le h_1, h_2 \le 23$$$ and $$$0 \le m_1, m_2 \le 59$$$. It is guaranteed that the contest lasts an even number of minutes (i.e. $$$m_1 \% 2 = m_2 \% 2$$$, where $$$x \% y$$$ is $$$x$$$ modulo $$$y$$$). It is also guaranteed that the entire contest is held during a single day. And finally it is guaranteed that the contest lasts at least two minutes.

Print two integers $$$h_3$$$ and $$$m_3$$$ ($$$0 \le h_3 \le 23, 0 \le m_3 \le 59$$$) corresponding to the midpoint of the contest in the format hh:mm. Print each number as exactly two digits (prepend a number with leading zero if needed), separate them with ':'.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace arbuz
{
    class Program
    {
        static void Main(string[] args)
        {
            string input = Console.ReadLine();
            int h1 = Convert.ToInt32(input.Split(':')[0]);
            int m1 = Convert.ToInt32(input.Split(':')[1]);

            input = Console.ReadLine();
            int h2 = Convert.ToInt32(input.Split(':')[0]);
            int m2 = Convert.ToInt32(input.Split(':')[1]);

            int delta = 0;
            if (h2 == h1)
            {
                delta = m2 - m1;
            }
            else if ((h2 - h1) == 1)
            {
                delta = m2 + (60 - m1);
            }
            else
            {
                delta = m2 + (60 - m1) + (h2 - h1 - 1) * 60;
            }

            int d2 = delta / 2;
            if (delta / 2 >= (60 - m1))
            {
                h1++;
                d2 = d2 - (60 - m1);

                h1 = h1 + d2 / 60;
                m1 = d2 % 60;
            }
            else
            {
                m1 = m1 + d2;
            }

            string q0 = Convert.ToString(h1);
            string q1 = Convert.ToString(m1);
            if (q0.Length == 1)
            {
                q0 = '0' + q0;
            }

            if (q1.Length == 1)
            {
                q1 = '0' + q1;
            }
            //Console.WriteLine(d2/60);
            Console.WriteLine(q0 + ':' + q1);
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HULK
{
    class Program
    {
        static void Main(string[] args)
        {

            string[] s = Console.ReadLine().Split(':');
            string[] ss = Console.ReadLine().Split(':');
            int time1 = Convert.ToInt32(s[0]) * 60 +Convert.ToInt32( s[1]);
            int time2 = Convert.ToInt32(ss[0]) * 60 + Convert.ToInt32(ss[1]);
            int raznitsa = (time2 - time1)/2;
            int time3 = time1 + raznitsa;
            int chasi = time3 / 60;
            string chasi1="0";
            if (chasi<10)chasi1=chasi1 + Convert.ToString(chasi);
            else chasi1 = Convert.ToString(chasi);
            int minuti = time3 % 60;
            string minuti1 = "0";
            if (minuti < 10) minuti1 = minuti1 + Convert.ToString(minuti);
            else minuti1 = Convert.ToString(minuti);
            Console.WriteLine(chasi1+":"+minuti1);
        }
    }
}

using System;

public class Program
{
	public static void Main()
	{
		string a = Console.ReadLine();
		string b = Console.ReadLine();
		int x1 = int.Parse(a.Split(':')[0]);
		int y1 = int.Parse(a.Split(':')[1]);
		int x2 = int.Parse(b.Split(':')[0]);
		int y2 = int.Parse(b.Split(':')[1]);
		int ans = (x2 * 60 - x1 * 60 + y2 - y1)/2 + x1 * 60 + y1;
		if(ans %60 < 10 && ans /60 < 10)
		{
			Console.WriteLine("0{0}:0{1}",ans/60, ans%60);
		}
		else if(ans / 60 < 10)
		{
			Console.WriteLine("0{0}:{1}",ans/60, ans%60);
		}
		else if(ans %60 < 10)
		{
			Console.WriteLine("{0}:0{1}",ans/60, ans%60);
		}
		else
		{
			Console.WriteLine("{0}:{1}",ans/60, ans%60);
		}
	}
}

using System;

namespace CSharp
{
    class _1133A
    {
        public static void Main()
        {
            var t1 = Console.ReadLine().Split(':');
            var t2 = Console.ReadLine().Split(':');

            int h1 = int.Parse(t1[0]);
            int m1 = int.Parse(t1[1]);

            int h2 = int.Parse(t2[0]);
            int m2 = int.Parse(t2[1]);

            int h3 = ((h1 + h2) * 60 + m1 + m2) / 2 / 60;
            int m3 = ((h1 + h2) * 60 + m1 + m2) / 2 % 60;

            Console.WriteLine(string.Join(":", h3.ToString().PadLeft(2, '0'), m3.ToString().PadLeft(2, '0')));
        }
    }
}

using System;
using System.Linq;
using CompLib.Util;

public class Program
{

    public void Solve()
    {
        var sc = new Scanner();
        int h1, h2, m1, m2;
        var l = sc.Next().Split(':');
        h1 = int.Parse(l[0]);
        m1 = int.Parse(l[1]);

        l = sc.Next().Split(':');
        h2 = int.Parse(l[0]);
        m2 = int.Parse(l[1]);

        int h3 = h1 + h2 + (m1 + m2) / 60;

        int m3 = (m1 + m2) % 60;

        int h4 = h3 / 2;

        if (h3 % 2 == 1) m3 += 60;

        int m4 = m3 / 2;

        Console.WriteLine($"{h4:D2}:{m4:D2}");
    }

    public static void Main(string[] args) => new Program().Solve();
    // public static void Main(string[] args) => new Thread(new Program().Solve, 1 << 27).Start();
}

namespace CompLib.Util
{
    using System;
    using System.Linq;

    class Scanner
    {
        private string[] _line;
        private int _index;
        private const char Separator = ' ';

        public Scanner()
        {
            _line = new string[0];
            _index = 0;
        }

        public string Next()
        {
            if (_index >= _line.Length)
            {
                string s;
                do
                {
                    s = Console.ReadLine();
                } while (s.Length == 0);

                _line = s.Split(Separator);
                _index = 0;
            }

            return _line[_index++];
        }

        public string ReadLine()
        {
            _index = _line.Length;
            return Console.ReadLine();
        }

        public int NextInt() => int.Parse(Next());
        public long NextLong() => long.Parse(Next());
        public double NextDouble() => double.Parse(Next());
        public decimal NextDecimal() => decimal.Parse(Next());
        public char NextChar() => Next()[0];
        public char[] NextCharArray() => Next().ToCharArray();

        public string[] Array()
        {
            string s = Console.ReadLine();
            _line = s.Length == 0 ? new string[0] : s.Split(Separator);
            _index = _line.Length;
            return _line;
        }

        public int[] IntArray() => Array().Select(int.Parse).ToArray();
        public long[] LongArray() => Array().Select(long.Parse).ToArray();
        public double[] DoubleArray() => Array().Select(double.Parse).ToArray();
        public decimal[] DecimalArray() => Array().Select(decimal.Parse).ToArray();
    }
}

using System;
using System.IO;
using System.Linq;

namespace Contest
{
    class Scanner
    {
        public Scanner()
        {
            _stream = new StreamReader(Console.OpenStandardInput());
            _pos = 0;
            _line = new string[0];
            _separator = ' ';
        }

        private char _separator;
        private StreamReader _stream;
        private int _pos;
        private string[] _line;

        #region get a element

        public string Next()
        {
            if (_pos >= _line.Length)
            {
                _line = _stream.ReadLine().Split(_separator);
                _pos = 0;
            }

            return _line[_pos++];
        }

        public int NextInt()
        {
            return int.Parse(Next());
        }

        public long NextLong()
        {
            return long.Parse(Next());
        }

        public double NextDouble()
        {
            return double.Parse(Next());
        }

        #endregion

        #region convert array

        private int[] ToIntArray(string[] array)
        {
            var result = new int[array.Length];
            for (int i = 0; i < array.Length; i++)
            {
                result[i] = int.Parse(array[i]);
            }

            return result;
        }

        private long[] ToLongArray(string[] array)
        {
            var result = new long[array.Length];
            for (int i = 0; i < array.Length; i++)
            {
                result[i] = long.Parse(array[i]);
            }

            return result;
        }

        private double[] ToDoubleArray(string[] array)
        {
            var result = new double[array.Length];
            for (int i = 0; i < array.Length; i++)
            {
                result[i] = double.Parse(array[i]);
            }

            return result;
        }

        #endregion

        #region get row elements

        #region get array

        public string[] Array()
        {
            if (_pos >= _line.Length)
                _line = _stream.ReadLine().Split(_separator);

            _pos = _line.Length;
            return _line;
        }

        public int[] IntArray()
        {
            return ToIntArray(Array());
        }

        public long[] LongArray()
        {
            return ToLongArray(Array());
        }

        public double[] DoubleArray()
        {
            return ToDoubleArray(Array());
        }

        #endregion

        #region get 2~4 elements

        public void GetRow(out string a, out string b)
        {
            a = Next();
            b = Next();
        }

        public void GetRow(out string a, out string b, out string c)
        {
            a = Next();
            b = Next();
            c = Next();
        }

        public void GetRow(out string a, out string b, out string c, out string d)
        {
            a = Next();
            b = Next();
            c = Next();
            d = Next();
        }

        public void GetIntRow(out int a, out int b)
        {
            a = NextInt();
            b = NextInt();
        }

        public void GetIntRow(out int a, out int b, out int c)
        {
            a = NextInt();
            b = NextInt();
            c = NextInt();
        }

        public void GetIntRow(out int a, out int b, out int c, out int d)
        {
            a = NextInt();
            b = NextInt();
            c = NextInt();
            d = NextInt();
        }

        public void GetLongRow(out long a, out long b)
        {
            a = NextLong();
            b = NextLong();
        }

        public void GetLongRow(out long a, out long b, out long c)
        {
            a = NextLong();
            b = NextLong();
            c = NextLong();
        }

        public void GetLongRow(out long a, out long b, out long c, out long d)
        {
            a = NextLong();
            b = NextLong();
            c = NextLong();
            d = NextLong();
        }

        public void GetDoubleRow(out double a, out double b)
        {
            a = NextDouble();
            b = NextDouble();
        }

        public void GetDoubleRow(out double a, out double b, out double c)
        {
            a = NextDouble();
            b = NextDouble();
            c = NextDouble();
        }

        public void GetDoubleRow(out double a, out double b, out double c, out double d)
        {
            a = NextDouble();
            b = NextDouble();
            c = NextDouble();
            d = NextDouble();
        }

        #endregion

        #endregion

        #region get 2~4 column elements

        public void GetColumn(int n, out string[] a)
        {
            a = new string[n];
            for (int i = 0; i < n; i++)
            {
                a[i] = Next();
            }
        }

        public void GetColumn(int n, out string[] a, out string[] b)
        {
            a = new string[n];
            b = new string[n];
            for (int i = 0; i < n; i++)
            {
                GetRow(out a[i], out b[i]);
            }
        }

        public void GetColumn(int n, out string[] a, out string[] b, out string[] c)
        {
            a = new string[n];
            b = new string[n];
            c = new string[n];
            for (int i = 0; i < n; i++)
            {
                GetRow(out a[i], out b[i], out c[i]);
            }
        }

        public void GetColumn(int n, out string[] a, out string[] b, out string[] c, out string[] d)
        {
            a = new string[n];
            b = new string[n];
            c = new string[n];
            d = new string[n];
            for (int i = 0; i < n; i++)
            {
                GetRow(out a[i], out b[i], out c[i], out d[i]);
            }
        }

        public void GetIntColumn(int n, out int[] a)
        {
            string[] sa;
            GetColumn(n, out sa);
            a = ToIntArray(sa);
        }

        public void GetIntColumn(int n, out int[] a, out int[] b)
        {
            string[] sa, sb;
            GetColumn(n, out sa, out sb);
            a = ToIntArray(sa);
            b = ToIntArray(sb);
        }

        public void GetIntColumn(int n, out int[] a, out int[] b, out int[] c)
        {
            string[] sa, sb, sc;
            GetColumn(n, out sa, out sb, out sc);
            a = ToIntArray(sa);
            b = ToIntArray(sb);
            c = ToIntArray(sc);
        }

        public void GetIntColumn(int n, out int[] a, out int[] b, out int[] c, out int[] d)
        {
            string[] sa, sb, sc, sd;
            GetColumn(n, out sa, out sb, out sc, out sd);
            a = ToIntArray(sa);
            b = ToIntArray(sb);
            c = ToIntArray(sc);
            d = ToIntArray(sd);
        }

        public void GetLongColumn(int n, out long[] a)
        {
            string[] sa;
            GetColumn(n, out sa);
            a = ToLongArray(sa);
        }

        public void GetLongColumn(int n, out long[] a, out long[] b)
        {
            string[] sa, sb;
            GetColumn(n, out sa, out sb);
            a = ToLongArray(sa);
            b = ToLongArray(sb);
        }

        public void GetLongColumn(int n, out long[] a, out long[] b, out long[] c)
        {
            string[] sa, sb, sc;
            GetColumn(n, out sa, out sb, out sc);
            a = ToLongArray(sa);
            b = ToLongArray(sb);
            c = ToLongArray(sc);
        }

        public void GetLongColumn(int n, out long[] a, out long[] b, out long[] c, out long[] d)
        {
            string[] sa, sb, sc, sd;
            GetColumn(n, out sa, out sb, out sc, out sd);
            a = ToLongArray(sa);
            b = ToLongArray(sb);
            c = ToLongArray(sc);
            d = ToLongArray(sd);
        }

        public void GetDoubleColumn(int n, out double[] a)
        {
            string[] sa;
            GetColumn(n, out sa);
            a = ToDoubleArray(sa);
        }

        public void GetDoubleColumn(int n, out double[] a, out double[] b)
        {
            string[] sa, sb;
            GetColumn(n, out sa, out sb);
            a = ToDoubleArray(sa);
            b = ToDoubleArray(sb);
        }

        public void GetDoubleColumn(int n, out double[] a, out double[] b, out double[] c)
        {
            string[] sa, sb, sc;
            GetColumn(n, out sa, out sb, out sc);
            a = ToDoubleArray(sa);
            b = ToDoubleArray(sb);
            c = ToDoubleArray(sc);
        }

        public void GetDoubleColumn(int n, out double[] a, out double[] b, out double[] c, out double[] d)
        {
            string[] sa, sb, sc, sd;
            GetColumn(n, out sa, out sb, out sc, out sd);
            a = ToDoubleArray(sa);
            b = ToDoubleArray(sb);
            c = ToDoubleArray(sc);
            d = ToDoubleArray(sd);
        }

        #endregion

        #region get matrix

        public string[][] GetMatrix(int h)
        {
            string[][] result = new string[h][];
            for (int i = 0; i < h; i++)
            {
                result[i] = Array();
            }

            return result;

        }

        public int[][] GetIntMatrix(int h)
        {
            int[][] result = new int[h][];
            for (int i = 0; i < h; i++)
            {
                result[i] = IntArray();
            }

            return result;
        }

        public long[][] GetLongMatrix(int h)
        {
            long[][] result = new long[h][];
            for (int i = 0; i < h; i++)
            {
                result[i] = LongArray();
            }

            return result;
        }

        public double[][] GetDoubleMatrix(int h)
        {
            double[][] result = new double[h][];
            for (int i = 0; i < h; i++)
            {
                result[i] = DoubleArray();
            }

            return result;
        }

        public char[][] GetCharMatrix(int h)
        {
            char[][] result = new char[h][];
            for (int i = 0; i < h; i++)
            {
                result[i] = Next().ToCharArray();
            }

            return result;
        }

        #endregion
    }

    class Program
    {

        public void Solve()
        {
            var sc = new Scanner();
            string[] h1 = sc.Next().Split(':');
            string[] h2 = sc.Next().Split(':');
            int minute1 = int.Parse(h1[0])*60 + int.Parse(h1[1]);
            int minute2 = int.Parse(h2[0])*60 + int.Parse(h2[1]);

            int med = (minute1 + minute2) / 2;

            Console.WriteLine("{0:d2}:{1:d2}", med / 60, med % 60);
        }

        static void Main(string[] args) => new Program().Solve();
    }
}

//#define INCREASE_STACK

using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Threading;

namespace ConsoleApp1
{
	class Program
	{
		private static LineReader In { get; set; }

		private static TextWriter Out { get; set; }

		public static void Main()
		{
#if ONLINE_JUDGE
			In = new LineReader(Console.In);
			Out = Console.Out;
#else
			In = new LineReader(File.OpenText("input.txt"));
			Out = new StreamWriter("../../output.txt", false);
#endif

			try
			{
#if INCREASE_STACK
				var thread = new Thread(Solve, 32 * 1024 * 1024);
				thread.Start();
				thread.Join();
#else
				Solve();
#endif
			}
			finally
			{
				Out.Dispose();
			}
		}

		public static void Solve()
		{
			string a = In.Read();
			int minuteOfDay1 = int.Parse(a.Substring(0, 2)) * 60 + int.Parse(a.Substring(3, 2));

			string b = In.Read();
			int minuteOfDay2 = int.Parse(b.Substring(0, 2)) * 60 + int.Parse(b.Substring(3, 2));

			int minuteOfDay3 = (minuteOfDay1 + minuteOfDay2) / 2;
			Out.WriteLine($"{(minuteOfDay3 / 60):D2}:{(minuteOfDay3 % 60):D2}");
		}
	}

	public class Line
	{
		private readonly string _line;

		public Line(string line)
		{
			_line = line;
		}

		public static implicit operator string(Line line)
		{
			return line._line;
		}

		public static implicit operator int(Line line)
		{
			return int.Parse(line._line);
		}

		public static implicit operator int[] (Line line)
		{
			return line._line.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToArray();
		}

		public static implicit operator long[] (Line line)
		{
			return line._line.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).Select(long.Parse).ToArray();
		}
	}

	public class LineReader
	{
		private readonly TextReader _reader;

		public LineReader(TextReader reader)
		{
			_reader = reader;
		}

		public Line Read()
		{
			string line = _reader.ReadLine();
			return line == null
				? null
				: new Line(line.Trim());
		}
	}
}

using System;
using System.Text;
using System.Globalization;
using System.Collections.Generic;

namespace codeforces
{
    class Program
    {
        static void Main(string[] args)
        {
            var s1 = Console.ReadLine().Split(':');
            var s2 = Console.ReadLine().Split(':');
            int h1 = int.Parse(s1[0]);
            int m1 = int.Parse(s1[1]);
            int h2 = int.Parse(s2[0]);
            int m2 = int.Parse(s2[1]);
            int minutes = (h2 * 60 + m2 - h1 * 60 - m1) / 2 + h1 * 60 + m1;
            Console.WriteLine(string.Format("{0}:{1}", (minutes / 60).ToString("D2"), (minutes % 60).ToString("D2")));
        }
    }
}

using System;
using System.Globalization;
using System.IO;
using System.Text;
using static System.Console;
using static System.Math;

namespace Olymp
{
  public class ProblemSolver
  {
    private readonly Tokenizer input;

    public void Solve()
    {
      var s1 = input.ReadToken();
      var s2 = input.ReadToken();
      var d1 = TimeSpan.ParseExact(s1, "hh\\:mm", null);
      var d2 = TimeSpan.ParseExact(s2, "hh\\:mm", null);
      var dd = (d2 - d1).TotalMinutes / 2;
      Write(d1.Add(TimeSpan.FromMinutes(dd)).ToString("hh\\:mm"));
    }

    public ProblemSolver(TextReader input)
    {
      this.input = new Tokenizer(input);
    }
  }

  #region Service classes

  public class Tokenizer
  {
    private TextReader reader;

    public string ReadToEnd()
    {
      return this.reader.ReadToEnd();
    }

    public int ReadInt()
    {
      var c = SkipWS();
      if (c == -1)
        throw new EndOfStreamException();
      var isNegative = false;
      if (c == '-' || c == '+')
      {
        isNegative = c == '-';
        c = this.reader.Read();
        if (c == -1)
          throw new InvalidOperationException();
      }
      if (!char.IsDigit((char)c))
        throw new InvalidOperationException();
      var result = (char)c - '0';
      c = this.reader.Read();
      while (c > 0 && !char.IsWhiteSpace((char)c))
      {
        if (!char.IsDigit((char)c))
          throw new InvalidOperationException();
        result = result * 10 + (char)c - '0';
        c = this.reader.Read();
      }
      if (isNegative)
        result = -result;
      return result;
    }

    public string ReadLine()
    {
      return reader.ReadLine();
    }

    public long ReadLong()
    {
      return long.Parse(this.ReadToken());
    }

    public double ReadDouble()
    {
      return double.Parse(this.ReadToken(), CultureInfo.InvariantCulture);
    }

    public int[] ReadIntArray(int n)
    {
      var a = new int[n];
      for (var i = 0; i < n; i++)
        a[i] = ReadInt();
      return a;
    }

    public long[] ReadLongArray(int n)
    {
      var a = new long[n];
      for (var i = 0; i < n; i++)
        a[i] = ReadLong();
      return a;
    }

    public double[] ReadDoubleArray(int n)
    {
      var a = new double[n];
      for (var i = 0; i < n; i++)
        a[i] = ReadDouble();
      return a;
    }

    public string ReadToken()
    {
      var c = SkipWS();
      if (c == -1)
        return null;
      var sb = new StringBuilder();
      while (c > 0 && !char.IsWhiteSpace((char)c))
      {
        sb.Append((char)c);
        c = this.reader.Read();
      }
      return sb.ToString();
    }

    private int SkipWS()
    {
      var c = this.reader.Read();
      if (c == -1)
        return c;
      while (c > 0 && char.IsWhiteSpace((char)c))
        c = this.reader.Read();
      return c;
    }

    public Tokenizer(TextReader reader)
    {
      this.reader = reader;
    }
  }

  internal class Program
  {
    public static void Main(string[] args)
    {
      var solver = new ProblemSolver(Console.In);
      solver.Solve();
    }
  }

  #endregion
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _12oct
{
    class Program
    {
        static void Main(string[] args)
        {

            string[] line = Console.ReadLine().Split(':');
            string[] line2 = Console.ReadLine().Split(':');
            int h1 = Convert.ToInt32(line[0]);
            int m1 = Convert.ToInt32(line[1]);
            int h2 = Convert.ToInt32(line2[0]);
            int m2 = Convert.ToInt32(line2[1]);

            int h3 = 0;
            int m3 = 0;

            int min1 = h1 * 60 + m1;
            int min2 = h2 * 60 + m2;

            int r = (min2 + min1) / 2;

            h3 = r / 60;
            m3 = r % 60;

            string Rh3 = Convert.ToString(h3);
            string Rm3 = Convert.ToString(m3);
            if (Rh3.Length == 1) Rh3 = "0" + Convert.ToString(h3);
            if (Rm3.Length == 1) Rm3 = "0" + Convert.ToString(m3);
            Console.WriteLine(Rh3 + ":" + Rm3);

        }

    }
}

using System;
using System.Collections.Generic;
using System.Text;

namespace TestConsoleApplication
{
    public class CodeForces
    {
        public static void Main(string[] args)
        {
            DateTime start = DateTime.Parse(Console.ReadLine());
            DateTime end = DateTime.Parse(Console.ReadLine());
            DateTime middle = start.Add(TimeSpan.FromMinutes(end.Subtract(start).TotalMinutes / 2));
            Console.Write(middle.Hour.ToString().PadLeft(2,'0') + ":" + middle.Minute.ToString().PadLeft(2, '0'));
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using static System.Console;

namespace ConsoleApp
{
    static class Program
    {
        static void Main()
        {
            var begin = DateTime.Parse(ReadLine());
            var end = DateTime.Parse(ReadLine());

            WriteLine((begin + TimeSpan.FromMinutes((end.Hour * 60 + end.Minute - begin.Hour * 60 - begin.Minute) / 2)).ToString("HH:mm"));
        }

        static List<int> Arr()
        {
            return ReadLine().Split().Select(int.Parse).ToList();
        }

        static int Value()
        {
            return int.Parse(ReadLine());
        }
    }
}

using System;
using System.Linq;

namespace AlgoTasks
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] hm1 = Console.ReadLine().Split(new char[] { ':' }).ToArray();
            string[] hm2 = Console.ReadLine().Split(new char[] { ':' }).ToArray();
            int h1 = hm1[0][0] == '0' ? Convert.ToInt32(hm1[0][1].ToString()) : Convert.ToInt32(hm1[0]);
            int h2 = hm2[0][0] == '0' ? Convert.ToInt32(hm2[0][1].ToString()) : Convert.ToInt32(hm2[0]);
            int m1 = hm1[1][0] == '0' ? Convert.ToInt32(hm1[1][1].ToString()) : Convert.ToInt32(hm1[1]);
            int m2 = hm2[1][0] == '0' ? Convert.ToInt32(hm2[1][1].ToString()) : Convert.ToInt32(hm2[1]);

            int mm1 = h1 * 60 + m1;
            int mm2 = h2 * 60 + m2;

            int mean = (mm2 - mm1) / 2;

            int ph = (mm1 + mean) / 60;
            int pm = (mm1 + mean) % 60;
            string sh = ph / 10 > 0 ? ph.ToString() : string.Concat("0", ph);
            string sm = pm / 10 > 0 ? pm.ToString() : string.Concat("0", pm);
            Console.WriteLine(string.Concat(sh, ":", sm));
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
             //int n=int.Parse(Console.ReadLine());

             string s=Console.ReadLine();
             string s1=Console.ReadLine();
             int a1=0;
             int a2=0;
             int[]a=new int[4];
             a1=(int.Parse(Convert.ToString(s[0]))*10+int.Parse(Convert.ToString(s[1])))*60+(int.Parse(Convert.ToString(s[3]))*10+int.Parse(Convert.ToString(s[4])));
             a2=(int.Parse(Convert.ToString(s1[0]))*10+int.Parse(Convert.ToString(s1[1])))*60+(int.Parse(Convert.ToString(s1[3]))*10+int.Parse(Convert.ToString(s1[4])));
             int chas=((a1+a2)/2)/60;
             int min=((a1+a2)/2)-chas*60;
             if((chas>9)&&(min>9))
             Console.WriteLine("{0}:{1}",chas,min);
             else if((chas<=9)&&(min>9))
             Console.WriteLine("0{0}:{1}",chas,min);
             else if((chas<=9)&&(min<=9))
             Console.WriteLine("0{0}:0{1}",chas,min);
             else
             Console.WriteLine("{0}:0{1}",chas,min);

        }

    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CSharpTest
{
    class Program
    {
        public static void func1(int h1, int m1, int h2, int m2)
        {

            int hTempResult = h2 - h1;
            int mTmpResult = m2 - m1;

            int mDif = (hTempResult * 60 + mTmpResult) / 2;
            int hPlus = mDif / 60;
            int mPlus = mDif % 60;

            int hResult = h1 + hPlus;
            int mResult = m1 + mPlus;

            if (mResult >= 60)
            {
                mResult = mResult % 60;
                hResult++;
            }

            var hResultS = "";

            if (hResult < 10)
                hResultS = "0" + hResult;
            else
                hResultS = hResult.ToString();

            var mResultS = "";

            if (mResult < 10)
                mResultS = "0" + mResult;
            else
                mResultS = mResult.ToString();

            Console.WriteLine(hResultS + ":" + mResultS);

        }

        static void Main(string[] args)
        {

            int h1;
            int m1;
            int h2;
            int m2;

            var s = Console.ReadLine();

            var strings = s.Split(':');
            h1 = int.Parse(strings[0]);
            m1 = int.Parse(strings[1]);

            s = Console.ReadLine();
            strings = s.Split(':');
            h2 = int.Parse(strings[0]);
            m2 = int.Parse(strings[1]);
            func1(h1, m1, h2, m2);

            //func1(10, 0, 11, 0); //10 30
            //func1(11, 10, 11, 12);//11 11
            //func1(1, 2, 3, 2);// 2 2
            //func1(17, 30, 18, 40);// 2 2
            //func1(23, 56, 23, 58);// 2 2
            //func1(12, 58, 13, 2);// 2 2

        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace div07._03
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] mas1 = Console.ReadLine().Split(':').Select(x => int.Parse(x)).ToArray();
            int[] mas2 = Console.ReadLine().Split(':').Select(x => int.Parse(x)).ToArray();

            if (mas1[0] == mas2[0])
            {
                int temp = ((mas2[1] - mas1[1]) / 2) + mas1[1];
                Console.WriteLine(String.Format("{0:D2}:{1:D2}", mas2[0], temp));// mas2[0] + ":" + temp);
                return;
            }
            if (mas1[0] == mas2[0] + 1)
            {
                int temp = (60 - mas1[1] + mas2[1]) / 2;

                if (mas1[1] + temp > 59)
                {
                    mas1[0]++;
                    mas1[1] = mas1[1] + temp - 60;

                    Console.WriteLine(String.Format("{0:D2}:{1:D2}", mas1[0], mas1[1]));
                    return;
                }
                else
                {
                    Console.WriteLine(String.Format("{0:D2}:{1:D2}", mas1[0], mas1[1] + temp)); // (mas1[0] + ":" + (mas1[1] + temp));
                    return;
                }
            }
            else
            {
                int temp = (((mas2[0] - mas1[0] - 1) * 60) + (60 - mas1[1] + mas2[1])) / 2;

                mas1[0] += temp / 60;
                mas1[1] += temp % 60;
                if (mas1[1] > 59)
                {
                    mas1[0]++;
                    mas1[1] -= 60;
                }
                Console.WriteLine(String.Format("{0:D2}:{1:D2}", mas1[0] , mas1[1]));
                return;
            }

        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication43
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] s = Console.ReadLine().Split(':');
            string[] s1 = Console.ReadLine().Split(':');
            int n = Convert.ToInt32(s[1]) + Convert.ToInt32(s[0]) * 60;
            int f = Convert.ToInt32(s1[1]) + Convert.ToInt32(s1[0]) * 60;
           // Console.WriteLine(n);
            //    Console.WriteLine(f);
            int sh = 0;
            int sm = 0;
            int h = (n + f) / 2;
            sh = h / 60;
            sm = h % 60;
            Console.WriteLine(sh/10+""+sh%10 +":" + sm/10+""+sm%10);
        }
    }
}

using System;
using System.IO;
using System.Text;

namespace Middle_of_the_Contest
{
    internal class Program
    {
        private static readonly StreamReader reader = new StreamReader(Console.OpenStandardInput(1024*10), Encoding.ASCII, false, 1024*10);
        private static readonly StreamWriter writer = new StreamWriter(Console.OpenStandardOutput(1024*10), Encoding.ASCII, 1024*10);

        private static void Main(string[] args)
        {
            Solve(args);
            writer.Flush();
        }

        private static void Solve(string[] args)
        {
            int h1 = Next();
            int m1 = Next();
            int h2 = Next();
            int m2 = Next();

            int t1 = h1*60 + m1;
            int t2 = h2*60 + m2;
            int t = (t1 + t2)/2;
            writer.Write((t/60).ToString("00"));
            writer.Write(':');
            writer.WriteLine((t % 60).ToString("00"));
        }

        private static int Next()
        {
            int c;
            int res = 0;
            do
            {
                c = reader.Read();
                if (c == -1)
                    return res;
            } while (c < '0' || c > '9');
            res = c - '0';
            while (true)
            {
                c = reader.Read();
                if (c < '0' || c > '9')
                    return res;
                res *= 10;
                res += c - '0';
            }
        }
    }
}

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;

public class Program
{
    public void Solve()
    {
        int[] a = reader.ReadLine().Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries).Select(token => int.Parse(token)).ToArray();
        int h1 = a[0];
        int m1 = a[1];

        a = reader.ReadLine().Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries).Select(token => int.Parse(token)).ToArray();
        int h2 = a[0];
        int m2 = a[1];

        int diff = (h2 * 60 + m2 - (h1 * 60 + m1)) / 2;
        int m3 = (m1 + diff) % 60;
        int h3 = h1 + ((m1 + diff) / 60);

        writer.WriteLine(h3.ToString("D2") + ":" + m3.ToString("D2"));
    }

    static void Main()
    {
#if DEBUG
        reader = new StreamReader("..\\..\\input.txt");
        //reader = new StreamReader(Console.OpenStandardInput());
        writer = Console.Out;
        //writer = new StreamWriter("..\\..\\output.txt");
        Stopwatch watch = new Stopwatch();
        watch.Start();
#else
        reader = new StreamReader(Console.OpenStandardInput());
        writer = new StreamWriter(Console.OpenStandardOutput());
        //reader = new StreamReader("input.txt");
        //writer = new StreamWriter("output.txt");
#endif
        try
        {
            new Program().Solve();
#if DEBUG
            watch.Stop();
            writer.WriteLine("Stopwatch: " + watch.ElapsedMilliseconds + "ms");
#endif
        }
        catch (Exception ex)
        {
#if DEBUG
            Console.WriteLine(ex);
#else
            throw;
#endif
        }
        reader.Close();
        writer.Close();
    }

    protected static TextReader reader;
    protected static TextWriter writer;

    private string[] ReadArray() => reader.ReadLine().Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
    private int[] ReadIntArray() => ReadArray().Select(token => int.Parse(token)).ToArray();
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication42
{
    class Program
    {
        static void Main(string[] args)
        {
            var input = Console.ReadLine();
            var arr = input.Split(':');

            var startH = int.Parse(arr[0]);
            var startM = int.Parse(arr[1]);

            input = Console.ReadLine();
            arr = input.Split(':');

            var endtH = int.Parse(arr[0]);
            var endM = int.Parse(arr[1]);

            var countH = 0;
            var countM = 0;

            if (startH == endtH)
            {
                countM = endM - startM;
            }
            else
            {
                if (startH > endtH)
                {
                    var ostM = 60 - startM;
                    var startH_2 = startH + 1;
                    var ostH = 24 - startH_2;

                    countH = (ostH) + endtH;
                    countM = (countH * 60) + ostM + endM;
                }
                else
                {
                    var ostM = 60 - startM;
                    var startH_2 = startH + 1;
                    if (startH_2 == 24)
                    {
                        startH_2 = 0;
                    }

                    countH = endtH - startH_2;
                    countM = (countH * 60) + ostM + endM;
                }
            }
            countM = countM / 2;

            var resCountH = countM / 60;
            var resCountM = countM % 60;

            var s1 = (((startH + resCountH) + ((startM + resCountM) / 60)) % 24).ToString().PadLeft(2, '0');
            var s2 = ((startM + resCountM) % 60).ToString().PadLeft(2, '0');

            Console.WriteLine(string.Format("{0}:{1}", s1, s2));
            //Console.ReadLine();
            //var input = Console.ReadLine();
            //var arr = input.Split();

            //var n = int.Parse(arr[0]);
            //var k = int.Parse(arr[1]);

            //if (n == k)
            //{
            //    Console.WriteLine(2);
            //}
            //else
            //{
            //    if (k == 2)
            //    {

            //    }
            //    else
            //    {
            //    Console.WriteLine((n - k + 1));
            //    }
            //}
            ////Console.ReadLine();
        }
    }
}

#define EXTENDSTACKSIZE

using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;

namespace CF
{
    internal class Program
    {
        private const int stackSize = 64 * 1024 * 1024;

        private static void Run()
        {
            using (var sr = new InputReader(Console.In))
//            using (var sr = new InputReader(new StreamReader("input.txt")))
            using (var sw = Console.Out)
//            using (var sw = new StreamWriter("output.txt"))
            using (var task = new Task(sr, sw)) {
                task.Solve();
//                Console.ReadKey();
            }
        }

        private static void Main(string[] args)
        {
#if EXTENDSTACKSIZE
            var threadStart = new ThreadStart(Run);
            var thread = new Thread(threadStart, stackSize);
            thread.Start();
            thread.Join();
#else
            Run();
#endif
        }
    }

    internal class Task : IDisposable
    {
        private readonly InputReader sr;
        private readonly TextWriter sw;
        private bool isDispose;

        public Task(InputReader sr, TextWriter sw)
        {
            this.sr = sr;
            this.sw = sw;
        }

        public void Solve()
        {
            Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
            Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture;
            var s1 = sr.NextString().Split(new[] {':'});
            var h1 = int.Parse(s1[0]);
            var m1 = int.Parse(s1[1]);
            var s2 = sr.NextString().Split(new[] {':'});
            var h2 = int.Parse(s2[0]);
            var m2 = int.Parse(s2[1]);
            var d1 = new DateTime(1, 1, 1, h1, m1, 0);
            var d2 = new DateTime(1, 1, 1, h2, m2, 0);
            var d = (d2 - d1).Ticks / 2;
            var d3 = d1.AddTicks(d);
            var h = d3.Hour.ToString();
            var m = d3.Minute.ToString();
            if (h.Length == 1)
            {
                h = "0" + h;
            }

            if (m.Length == 1)
            {
                m = "0" + m;
            }
            sw.WriteLine(h + ":" + m);
        }

        public void Dispose()
        {
            Dispose(true);
            GC.SuppressFinalize(this);
        }

        private void Dispose(bool disposing)
        {
            if (!isDispose) {
                if (disposing) {
                    if(sr != null)
                        sr.Dispose();

                    if(sw != null)
                        sw.Dispose();
                }

                isDispose = true;
            }
        }
    }
}

internal class InputReader : IDisposable
{
    private bool isDispose;
    private readonly TextReader sr;
    private string[] buffer;
    private int seek;

    public InputReader(TextReader stream)
    {
        sr = stream;
    }

    public void Dispose()
    {
        Dispose(true);
        GC.SuppressFinalize(this);
    }

    public string NextString()
    {
        var result = sr.ReadLine();
        return result;
    }

    public int NextInt32()
    {
        return Int32.Parse(ReadNextToken());
    }

    private string ReadNextToken()
    {
        if (buffer == null || seek == buffer.Length) {
            seek = 0;
            buffer = NextSplitStrings();
        }

        return buffer[seek++];
    }

    public long NextInt64()
    {
        return Int64.Parse(ReadNextToken());
    }

    public int[] ReadArrayOfInt32()
    {
        return ReadArray(Int32.Parse);
    }

    public long[] ReadArrayOfInt64()
    {
        return ReadArray(Int64.Parse);
    }

    public string[] NextSplitStrings()
    {
        return NextString()
            .Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
    }

    public T[] ReadArray<T>(Func<string, CultureInfo, T> func)
    {
        return NextSplitStrings()
            .Select(s => func(s, CultureInfo.InvariantCulture))
            .ToArray();
    }

    public T[] ReadArrayFromString<T>(Func<string, CultureInfo, T> func, string str)
    {
        return
            str.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)
                .Select(s => func(s, CultureInfo.InvariantCulture))
                .ToArray();
    }

    protected void Dispose(bool dispose)
    {
        if (!isDispose)
        {
            if (dispose)
                sr.Close();

            isDispose = true;
        }
    }

    ~InputReader()
    {
        Dispose(false);
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp39
{
    class Program
    {
        static void Main(string[] args)
        {
            var arr1 = Array.ConvertAll(Console.ReadLine().Trim().Split(':'), int.Parse);
            int h1 = arr1[0];
            int m1 = arr1[1];

            var arr2 = Array.ConvertAll(Console.ReadLine().Trim().Split(':'), int.Parse);
            int h2 = arr2[0];
            int m2 = arr2[1];

            int m3 = ((h2 - h1) * 60 + (m2 - m1))/2;

            int h3 = m3 / 60 + h1;
            if (m3 % 60 + m1 >= 60)
            {
                h3 += 1;
                m3 = m3 % 60 + m1 - 60;
            }
            else {
                m3 = m3 % 60 + m1;
            }

            string strm3 = Convert.ToString(m3);
            string strh3 = Convert.ToString(h3);
            if (m3 < 10)
            {
                strm3 = "0";
                strm3 += Convert.ToString(m3);
            }
            if (h3 < 10)
            {
                strh3 = "0";
                strh3 += Convert.ToString(h3);
            }

            Console.WriteLine(strh3 + ":" + strm3);
        }
    }
}

using System;
using System.Collections.Generic;

namespace ConsoleApp27
{
    class Program
    {
        static void Main(string[] args)
        { string zero = "0";
            string ft = Console.ReadLine();
            string st = Console.ReadLine();
            string[] t1 = ft.Split(':');
            string[] t2 = st.Split(':');
            int h1 = Convert.ToInt32(t1[0]);
            int m1 = Convert.ToInt32(t1[1]);
            int h2 = Convert.ToInt32(t2[0]);
            int m2 = Convert.ToInt32(t2[1]);
            int[] answer = new int[2];

            int time1 = h1 * 60 + m1;
            int time2 = h2 * 60 + m2;
            int tin = (time1 + time2) / 2;
            answer[0] = tin / 60;
            answer[1] = tin % 60;

            string fa = Convert.ToString(answer[0]);
            string sa = Convert.ToString(answer[1]);
            if (answer[0] < 10)
                fa = zero + fa;
            if (answer[1] < 10)
                sa = zero + sa;
            Console.WriteLine(fa + ":" + sa);

        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace C
{
    class Program
    {

        static void Main(string[] args)
        {

            string[] time1 = Console.ReadLine().Split(':');
            string[] time2 = Console.ReadLine().Split(':');
            int result = 0;
            int minut;
            if ((int.Parse(time2[0]) - (int.Parse(time1[0]) + 1)) != -1)
            {
                result += (int.Parse(time2[0]) - (int.Parse(time1[0]) + 1)) * 60;

                result += 60 - int.Parse(time1[1]);
                result += int.Parse(time2[1]);
            }
            else
                result += int.Parse(time2[1]) - int.Parse(time1[1]);
            result /= 2;
            int resul_h = result / 60;
            int result_min = result % 60;
            resul_h += int.Parse(time1[0]);
            if(result_min+ int.Parse(time1[1])>=60)
            {
                resul_h++;
                result_min = (result_min + int.Parse(time1[1])) % 60;
            }
            else
            {
                result_min = result_min + int.Parse(time1[1]);
            }
            string h = resul_h.ToString();
            string min = result_min.ToString();
            if (resul_h < 10)
                h = "0" + h;
            if (result_min < 10)
                min = "0" + min;
            Console.WriteLine($"{h}:{min}");
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            string s = Console.ReadLine();
            int start = int.Parse(s.Substring(0, 2)) * 60 + int.Parse(s.Substring(3, 2));
            s = Console.ReadLine();
            int end= int.Parse(s.Substring(0, 2)) * 60 + int.Parse(s.Substring(3, 2));
            int middle = (end - start)/2;
            int hour = start / 60 + middle / 60;
            int minute = start % 60 + middle % 60 ;
            if (minute >= 60)
            {
                hour += minute / 60;
                minute = minute % 60;
            };
            s = hour.ToString();
            string s1= minute.ToString();
            if (minute < 10)
                s1 = "0"+s1;
            if (hour < 10)
                s = "0" +s;
            Console.WriteLine(s+":"+s1);

        }
    }
}

using System;

namespace ConsoleApplication6
{
    class Program
    {
        static void Main(string[] args)
        {
            string a = Console.ReadLine();
            string b = Console.ReadLine();
            string[] s1 = a.Split(':');
            string[] s2 = b.Split(':');
            int a1 = Convert.ToInt32(s1[0]);
            int b1 = Convert.ToInt32(s1[1]);
            int a2 = Convert.ToInt32(s2[0]);
            int b2 = Convert.ToInt32(s2[1]);
            int c1 = (a1 + a2), c2 = (b1 + b2);
            if (c2 >= 60)
            {
                c2 -= 60;
                c1++;
            }
            if (c1 % 2 == 1)
            {
                c1--;
                c2 += 60;
            }
            c1 /= 2;
            c2 /= 2;
            s1[0] = c1.ToString();
            s1[1] = c2.ToString();
            if (s1[0].Length == 1) s1[0] = '0' + s1[0];
            if (s1[1].Length == 1) s1[1] = '0' + s1[1];
            Console.WriteLine(s1[0].ToString() + ":" + s1[1].ToString());
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            string s = Console.ReadLine();
            int h1 = int.Parse(s.Substring(0, 2));
            int m1 = int.Parse(s.Substring(3, 2));
            int q1 = h1 * 60 + m1;
            s = Console.ReadLine();
            int h2 = int.Parse(s.Substring(0, 2));
            int m2 = int.Parse(s.Substring(3, 2));
            int q2 = h2 * 60 + m2;
            int dq = q2 - q1;
            dq /= 2;
            dq += q1;
            h1 = dq / 60;
            m1 = dq % 60;

            Console.WriteLine($"{h1/10}{h1%10}:{m1/10}{m1%10}");
        }
    }
}

using System;
namespace BasicProgramming
{
    class Program
    {
        static void Main(string[] args)
        {
            var h1m1 = Array.ConvertAll(Console.ReadLine().Split(':'), int.Parse);
            var h2m2 = Array.ConvertAll(Console.ReadLine().Split(':'), int.Parse);
            int hour = h1m1[0] + h2m2[0];
            int min= h1m1[1] + h2m2[1];
            int totalmin = (hour * 60 + min) / 2;
            hour = totalmin / 60;
            min = totalmin % 60;
            string hh=Convert.ToString(hour), mm=Convert.ToString(min);
            if (hh.Length == 1) { hh = "0" + hh; }
            if (mm.Length == 1) { mm = "0" + mm; }

            Console.WriteLine(hh + ":" + mm);

        }
    }
}

using System;
using System.Text;
using System.Collections.Generic;
class Problem
{
    static void Main()
    {
        var start=Array.ConvertAll( Console.ReadLine().Split( ':' ),Convert.ToInt32);
        var end=Array.ConvertAll( Console.ReadLine().Split( ':' ),Convert.ToInt32);
        if(( start[0] + end[0] ) % 2 == 0)
            Console.WriteLine( "{0:00}" + ":" + "{1:00}", ( start[0] + end[0] ) / 2, ( start[1] + end[1] ) / 2 );

        else
            if(start[1]+end[1]<60)
            Console.WriteLine( "{0:00}" + ":" + "{1:00}", ( start[0] + end[0] ) / 2, ( start[1] + end[1] +60) / 2 );
            else
                Console.WriteLine( "{0:00}" + ":" + "{1:00}", ( start[0] + end[0] ) / 2 +1, ( start[1] + end[1] -60)  / 2 );
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {

            string[] t1 = Console.ReadLine().Split(':');
            string[] t2 = Console.ReadLine().Split(':');

            int h1 = Convert.ToInt32(t1[0]);
            int m1 = Convert.ToInt32(t1[1]);

            int h2 = Convert.ToInt32(t2[0]);
            int m2 = Convert.ToInt32(t2[1]);

            int t3 = h1 * 60 + m1;
            int t4 = h2 * 60 + m2;

            int t = (t3 + t4) / 2;
            int h = t / 60;
            int m = t % 60;

            if (h > 0 && h < 10 || h == 0)
            {
                if (m > 0 && m < 10 || m == 0)
                {
                    Console.WriteLine("0" + h + ":" + "0" + m);
                }
                else
                {
                    Console.WriteLine("0" + h + ":" + m);
                }
            }
            else if (m > 0 && m < 10 || m == 0)
            {

                Console.WriteLine(h + ":" + "0" + m);

            }
            else
            {
                Console.WriteLine(h + ":" + m);
            }

                //Console.WriteLine(h + ":" + m);

        }
    }
}

// Problem: 1133A - Middle of the Contest
// Author: Gusztav Szmolik

using System;

class MiddleOfTheContest
    {
    static int Main ()
        {
        string[] words = ReadSplitLine (1);
        if (words == null)
            return -1;
        string t = words[0];
        short tBeginMin = TimeToMin (t);
        if (tBeginMin == -1)
            return -1;
        words = ReadSplitLine (1);
        if (words == null)
            return -1;
        t = words[0];
        short tEndMin = TimeToMin (t);
        if (tEndMin == -1)
            return -1;
        if (tBeginMin >= tEndMin)
            return -1;
        ushort tContestMin = Convert.ToUInt16 (tEndMin-tBeginMin);
        if (tContestMin%2 == 1)
            return -1;
        ushort tMidMin = Convert.ToUInt16 ((tBeginMin+tEndMin)/2);
        Console.WriteLine ("{0:D2}:{1:D2}",tMidMin/60,tMidMin%60);
        return 0;
        }

    static short TimeToMin (string t)
        {
        if (t.Length != 5)
            return -1;
        if (t[2] != ':')
            return -1;
        if (!Char.IsDigit (t[0]) || !Char.IsDigit (t[1]) || !Char.IsDigit (t[3]) || !Char.IsDigit (t[4]))
            return -1;
        byte hour = Convert.ToByte ((t[0]-'0')*10+(t[1]-'0'));
        if (hour > 23)
            return -1;
        ushort tMin = Convert.ToUInt16 (hour*60);
        byte min = Convert.ToByte ((t[3]-'0')*10+(t[4]-'0'));
        if (min > 59)
            return -1;
        tMin += min;
        return (short)tMin;
        }

    static string[] ReadSplitLine (uint numWordNeed)
        {
        string line = Console.ReadLine ();
        if (line == null)
            return null;
        char[] delims = new char[2] {' ', '\t'};
        string[] words = line.Split (delims,StringSplitOptions.RemoveEmptyEntries);
        return (words.Length == numWordNeed ? words : null);
        }
    }

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Codeforces
{
    class Program
    {
        static void Main(string[] args)
        {

            string[] s = Console.ReadLine().Split(':');
            int a = int.Parse(s[0]) * 60 + int.Parse(s[1]);
            s = Console.ReadLine().Split(':');
            int b = int.Parse(s[0]) * 60 + int.Parse(s[1]);

            int ans = a + (b - a) / 2;
            string h = Convert.ToString(ans / 60);
            string m = Convert.ToString(ans % 60);
            if (h.Length == 1)
                h = "0" + h;
            if (m.Length == 1)
                m = "0" + m;
            Console.WriteLine(h+":"+m);

        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;

namespace Task1
{
    class Program
    {
        static void Main(string[] args)
        {
            List<int> time0 = Console.ReadLine().Split(':').ToList().ConvertAll(int.Parse);
            int minutsBegin = 60 * time0[0] + time0[1];
            List<int> timeK = Console.ReadLine().Split(':').ToList().ConvertAll(int.Parse);
            int minutsEnd = 60 * timeK[0] + timeK[1];
            int minuteAverage = (minutsBegin + minutsEnd) / 2;
            int hourEnd = minuteAverage / 60;
            int minuteEnd = minuteAverage % 60;
            Console.WriteLine(String.Format("{0:00}", hourEnd)+":"+ String.Format("{0:00}", minuteEnd));
        }
    }
}

using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            var start = Console.ReadLine().Split(':');
            var end = Console.ReadLine().Split(':');
            var h1 = Convert.ToInt32(start[0]);
            var m1 = Convert.ToInt32(start[1]);
            var h2 = Convert.ToInt32(end[0]);
            var m2 = Convert.ToInt32(end[1]);
            var min1 = h1 * 60 + m1;
            var min2 = h2 * 60 + m2;
            var midmin = (min1 + min2) / 2;
            Console.WriteLine("{0:00}:{1:00}", midmin / 60, midmin % 60);
        }

    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            var start = Console.ReadLine().Split(new char[] {':'}).Select(int.Parse).ToArray();
            var startSec = start[0]*60 + start[1];
            var end = Console.ReadLine().Split(new char[] { ':' }).Select(int.Parse).ToArray();
            var endSec = end[0]*60 + end[1];
            var middleTime = 0;
            if (endSec > startSec)
            {
                middleTime = (endSec + startSec)/2;
            }

            var h = middleTime/60;
            var m = middleTime - h*60;
            Console.WriteLine(h.ToString("D2") + ":"+ m.ToString("D2"));
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            var start = Console.ReadLine().Split(new char[] {':'}).Select(int.Parse).ToArray();
            var startSec = start[0]*60 + start[1];
            var end = Console.ReadLine().Split(new char[] { ':' }).Select(int.Parse).ToArray();
            var endSec = end[0]*60 + end[1];
            var middleTime = 0;
            if (endSec > startSec)
            {
                middleTime = (endSec + startSec)/2;
            }
            else
            {
                middleTime = endSec + 60*24 - startSec;
            }

            var h = middleTime/60;
            var m = middleTime - h*60;
            Console.WriteLine(h.ToString("D2") + ":"+ m.ToString("D2"));
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _544._2
{
    class Program
    {
        static void Main(string[] args)
        {
            string a, b;
            int h1, h2, m1, m2, time1, time2, h_mid, m_mid;
            double mid_time;
            a = Console.ReadLine();
            h1 = Convert.ToInt32(a.Substring(0, a.Length - 3));
            m1 = Convert.ToInt32(a.Substring(3));
            b = Console.ReadLine();
            h2 = Convert.ToInt32(b.Substring(0, b.Length - 3));
            m2 = Convert.ToInt32(b.Substring(3));
            time1 = h1 * 60 + m1;
            time2 = h2 * 60 + m2;
            mid_time = time1 + (time2 - time1) / 2;
            h_mid = Convert.ToInt32(Math.Floor(mid_time / 60));
            m_mid = Convert.ToInt32(mid_time) - h_mid * 60;
            if (h_mid < 10) Console.Write('0');
            Console.Write(h_mid);
            Console.Write(':');
            if (m_mid < 10) Console.Write('0');
            Console.Write(m_mid);
        }
    }
}

using System.CodeDom.Compiler;
using System.Collections.Generic;
using System.Collections;
using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.Serialization;
using System.Text.RegularExpressions;
using System.Text;
using System;

class Solution {
    static void Main(string[] args) {
		var arr =  Array.ConvertAll(Console.ReadLine().Trim().Split(':'), Convert.ToInt32);
        var h1 = arr[0];
        var m1 = arr[1];
        arr =  Array.ConvertAll(Console.ReadLine().Trim().Split(':'), Convert.ToInt32);
        var h2 = arr[0];
        var m2 = arr[1];

        var tm = h1*60+h2*60+m1+m2;
        tm = tm /2;

        Console.WriteLine($"{(tm/60).ToString().PadLeft(2, '0')}:{(tm%60).ToString().PadLeft(2, '0')}");
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp6
{
    class Program
    {
        static void Main(string[] args)
        {
            string time1 = Console.ReadLine();
            string time2 = Console.ReadLine();

            DateTime start1 = DateTime.Now.Date;
            DateTime start2 = DateTime.Now.Date;

            start1=start1.AddHours(Convert.ToInt32(time1.Split(':').FirstOrDefault()));
            start1=start1.AddMinutes(Convert.ToInt32(time1.Split(':').LastOrDefault()));

            start2=start2.AddHours(Convert.ToInt32(time2.Split(':').FirstOrDefault()));
            start2=start2.AddMinutes(Convert.ToInt32(time2.Split(':').LastOrDefault()));

            var sub = start2.Subtract(start1);

            start1=start1.AddMinutes(sub.TotalMinutes/2);

            Console.WriteLine(start1.ToString("HH:mm"));

        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace opDiv3
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] time = Console.ReadLine().Split(new char[] {':'});
            int h1 = Convert.ToInt32(time[0]);
            int m1 = Convert.ToInt32(time[1]);

            string[] time2 = Console.ReadLine().Split(new char[] { ':' });
            int h2 = Convert.ToInt32(time2[0]);
            int m2 = Convert.ToInt32(time2[1]);

            double h3 = ((h2 - h1)/2.0)+h1;
            int m3 = ((m2 - m1) / 2) + m1;

            if (h3 % 1 != 0)
            {
                m3+=30;
                h3 -=0.5;

            }

            if (m3 >= 60)
            {
                m3 -= 60;
                h3++;
            }

            if(m3<0)
            {
                h3--;
                m3 *= -1;
            }

            if (m3 < 10 && h3 < 10) Console.WriteLine("0" + h3 + ":"+"0" + m3);
            else if (m3 < 10) Console.WriteLine(h3 + ":" + "0" + m3);
            else if (h3 < 10) Console.WriteLine("0"+h3 + ":"  + m3);
            else Console.WriteLine( h3 + ":"  + m3);
        }
    }
}

//using MetadataExtractor;
//using MetadataExtractor.Formats.Exif;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;

namespace CodeForces
{
    public static class MainClass
    {

        static int ReadIntLine()
        {
            return int.Parse(Console.ReadLine());
        }

        static void ReadInt(ref int a)
        {
            a = ReadIntArrayLine()[0];
        }

        static void ReadInts(ref int a, ref int b)
        {
            var x = ReadIntArrayLine();
            a = x[0]; b = x[1];
        }

        static void ReadInts(ref int a, ref int b, ref int c)
        {
            var x = ReadIntArrayLine();
            a = x[0]; b = x[1]; c = x[2];
        }

        static void ReadInts(ref int a, ref int b, ref int c, ref int d)
        {
            var x = ReadIntArrayLine();
            a = x[0]; b = x[1]; c = x[2]; d = x[3];
        }

        static void ReadInts(ref int a, ref int b, ref int c, ref int d, ref int e)
        {
            var x = ReadIntArrayLine();
            a = x[0]; b = x[1]; c = x[2]; d = x[3]; e = x[4];
        }

        static void ReadInts(ref int a, ref int b, ref int c, ref int d, ref int e, ref int f)
        {
            var x = ReadIntArrayLine();
            a = x[0]; b = x[1]; c = x[2]; d = x[3]; e = x[4]; f = x[5];
        }

        static int[] ReadIntArrayLine()
        {
            char[] sep = { ' ' };
            return Console.ReadLine().Split(sep, StringSplitOptions.RemoveEmptyEntries).Select(x => int.Parse(x)).ToArray();
        }

        static void PrintLn(object obj)
        {
            Console.WriteLine(obj.ToString());
        }

        /*public static string Reverse(string s)
        {
            char[] charArray = s.ToCharArray();
            Array.Reverse(charArray);
            return new string(charArray);
        }*/

        public static void PrintLnCollection<T>(IEnumerable<T> col)
        {
            PrintLn(string.Join(" ", col));
        }

        public static void PrintLn(params object[] v)
        {
            PrintLnCollection(v);
        }

        public static string ReadLine()
        {
            return Console.ReadLine();
        }

        public static string MySubstring(this string str, int start, int finish)
        {
            if (start > finish) return "";
            return str.Substring(start, finish - start + 1);
        }

        public static string Reverse(this string str)
        {
            if (str == null) return null;

            return new string(str.ToArray().Reverse().ToArray());
        }
        public static bool IsInRange(this int a, int lb, int ub)
        {
            return (a >= lb) && (a <= ub);
        }

        private static void mergeDS(int i, int j, int[] a)
        {
            int t = a[j];
            for (int ii = 0; ii < a.Length; ii++)
            {
                if (a[ii] == t)
                    a[ii] = a[i];
            }
        }

        private static T MyMax<T>(params T[] a)
        {
            return a.Max();
        }

        private static T MyMin<T>(params T[] a)
        {
            return a.Min();
        }

        private static int[] GetPrimesLessThan(int x)
        {
            if (x < 2)
                return new int[0];

            int[] a = new int[x];

            a[0] = 1; a[1] = 1;

            for (int i = 0; i < a.Length; i++)
            {
                if (a[i] == 0)
                    for (int j = 2 * i; j < a.Length; j += i)
                    {
                        a[j] = 1;
                    }
            }

            var abc = new List<int>(x);

            for (int i = 0; i < a.Length; i++)
            {
                if (a[i] == 0)
                    abc.Add(i);
            }

            return abc.ToArray();
        }

        private static int FindNearestLEQElementInTheArray(int[] a, int startIndex, int endIndex, int target)
        {
            if (startIndex == endIndex)
            {
                if (a[startIndex] <= target)
                    return startIndex;
                else
                    return -1;
            }

            if (startIndex + 1 == endIndex)
            {
                if (a[endIndex] <= target)
                    return endIndex;
                else if (a[startIndex] <= target)
                    return startIndex;
                else
                    return -1;
            }

            int mid = (startIndex + endIndex) / 2;
            if (target == a[mid])
                return mid;
            else if (target < a[mid])
                return FindNearestLEQElementInTheArray(a, startIndex, mid - 1, target);
            else
                return FindNearestLEQElementInTheArray(a, mid, endIndex, target);
        }

        private static int FindNearestLEQElementInTheArray(int[] a, int target)
        {
            return FindNearestLEQElementInTheArray(a, 0, a.Length - 1, target);
        }

        private static int FindRightMostLEQElementInTheArray(int[] a, int startIndex, int endIndex, int target)
        {
            if (startIndex == endIndex)
            {
                if (a[startIndex] <= target)
                    return startIndex;
                else
                    return -1;
            }

            if (startIndex + 1 == endIndex)
            {
                if (a[endIndex] <= target)
                    return endIndex;
                else if (a[startIndex] <= target)
                    return startIndex;
                else
                    return -1;
            }

            int mid = (startIndex + endIndex) / 2;
            if (target < a[mid])
                return FindRightMostLEQElementInTheArray(a, startIndex, mid - 1, target);
            else
                return FindRightMostLEQElementInTheArray(a, mid, endIndex, target);
        }

        private static int FindRightMostLEQElementInTheArray(int[] a, int target)
        {
            return FindRightMostLEQElementInTheArray(a, 0, a.Length - 1, target);
        }

        private static int gcd(int a, int b)
        {
            int r = a % b;
            while (r != 0)
            {
                a = b;
                b = r;
                r = a % b;
            }
            return b;
        }

        //----------------------------------------------------------------------------

        static string GetSha1(string filePath)
        {
            using (FileStream fs = new FileStream(filePath, FileMode.Open))
            using (BufferedStream bs = new BufferedStream(fs))
            {
                using (SHA1Managed sha1 = new SHA1Managed())
                {
                    byte[] hash = sha1.ComputeHash(bs);
                    StringBuilder formatted = new StringBuilder(2 * hash.Length);
                    foreach (byte b in hash)
                    {
                        formatted.AppendFormat("{0:X2}", b);
                    }

                    return formatted.ToString();
                }
            }
        }

        static bool canFit(int a1, int b1, int a2, int b2)
        {
            int[] r1 = { a1, b1 };
            int[] r2 = { a2, b2 };

            Array.Sort(r1);
            Array.Sort(r2);

            bool ans = (r1[0] <= r2[0]) && (r1[1] <= r2[1]);

            return ans;

        }

        class Pair
        {
            public int first { get; set; }
            public int second { get; set; }
        }

        class Coord
        {
            public int x;
            public int y;
            public double d;
        }

        public static double dist(int x1,int y1,int x2,int y2)
        {
            int dx = x2 - x1;
            int dy = y2 - y1;

            return Math.Sqrt(dx * dx + dy * dy);

        }
        static void Main(string[] args)
        {
			var t1 = ReadLine().Split(':').Select(x=>Convert.ToInt32(x)).ToArray();
			var t2 = ReadLine().Split(':').Select(x=>Convert.ToInt32(x)).ToArray();

			int m1 = t1[0]*60+t1[1];
			int m2 = t2[0]*60+t2[1];

			int mid = m1+ (m2-m1)/2;

			var h = (mid/60 < 10)? ("0"+(mid/60)):(""+mid/60);
			var m = (mid%60 < 10)? ("0"+(mid%60)):(""+mid%60);

			PrintLn(h+":"+m);

        }

    }

}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CAPTAIN_AMERICA
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] s = Console.ReadLine().Split(':');
            int time1 = Convert.ToInt32(s[0]) * 60 + Convert.ToInt32(s[1]);

            string[] s1 = Console.ReadLine().Split(':');
            int time2 = Convert.ToInt32(s1[0]) * 60 + Convert.ToInt32(s1[1]);
            int time3 = (time2 - time1) / 2;
            int otvetHours = Convert.ToInt32(s[0]);
            int otvetMinutes = Convert.ToInt32(s[1]);
            while (time3 >= 60)
            {
                time3 = time3 - 60;
                otvetHours++;
            }
            otvetMinutes += time3;
            string otvet = Convert.ToString(otvetHours) +":"+ Convert.ToString(otvetMinutes);
            if (otvetHours < 10)
            {
                otvet = "0" + otvet;
            }
            if (otvetMinutes < 10)
            {
                string answer = otvet.Substring(0, 3);
                answer += "0";
                answer+=otvetMinutes;
                Console.WriteLine(answer);
            }
            else
            {
                Console.WriteLine(otvet);
            }
        }
    }
}
//  23:59
//1

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CAPTAIN_AMERICA
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] s = Console.ReadLine().Split(':');
            int time1 = Convert.ToInt32(s[0]) * 60 + Convert.ToInt32(s[1]);

            string[] s1 = Console.ReadLine().Split(':');
            int time2 = Convert.ToInt32(s1[0]) * 60 + Convert.ToInt32(s1[1]);
            int time3 = (time2 - time1) / 2;
            int otvetHours = Convert.ToInt32(s[0]);
            int otvetMinutes = Convert.ToInt32(s[1]);
            while (time3 >= 60)
            {
                time3 = time3 - 60;
                otvetHours++;
            }
            otvetMinutes += time3;
            string otvet = Convert.ToString(otvetHours) +":"+ Convert.ToString(otvetMinutes);
            if (otvetHours < 10)
            {
                otvet = "0" + otvet;
            }
            if (otvetMinutes < 10)
            {
                string answer = otvet.Substring(0, 3);
                answer += s[1];
                Console.WriteLine(answer);
            }
            else
            {
                Console.WriteLine(otvet);
            }
        }
    }
}
//  23:59
//1

using System;

public class Program
{
	public static void Main()
	{
		string a = Console.ReadLine();
		string b = Console.ReadLine();
		int x1 = int.Parse(a.Split(':')[0]);
		int y1 = int.Parse(a.Split(':')[1]);
		int x2 = int.Parse(b.Split(':')[0]);
		int y2 = int.Parse(b.Split(':')[1]);
		int ans = (x2 * 60 - x1 * 60 + y2 - y1)/2 + x1 * 60 + y1;
		Console.WriteLine("{0}:{1}",ans/60, ans%60);
	}
}

using System;

public class Program
{
	public static void Main()
	{
		string a = Console.ReadLine();
		string b = Console.ReadLine();
		int x1 = int.Parse(a.Split(':')[0]);
		int y1 = int.Parse(a.Split(':')[1]);
		int x2 = int.Parse(b.Split(':')[0]);
		int y2 = int.Parse(b.Split(':')[1]);
		int ans = (x2 * 60 - x1 * 60 + y2 - y1)/2 + x1 * 60 + y1;
		if(ans / 60 < 10)
		{
			Console.WriteLine("0{0}:{1}",ans/60, ans%60);
		}
		else if(ans %60 < 10)
		{
			Console.WriteLine("{0}:0{1}",ans/60, ans%60);
		}
		else if(ans %60 < 10 && ans /60 < 10)
		{
			Console.WriteLine("0{0}:0{1}",ans/60, ans%60);
		}
		else
		{
			Console.WriteLine("{0}:{1}",ans/60, ans%60);
		}
	}
}

using System;

public class Program
{
	public static void Main()
	{
		string a = Console.ReadLine();
		string b = Console.ReadLine();
		int x1 = int.Parse(a.Split(':')[0]);
		int y1 = int.Parse(a.Split(':')[1]);
		int x2 = int.Parse(b.Split(':')[0]);
		int y2 = int.Parse(b.Split(':')[1]);
		int ans = (x2 * 60 - x1 * 60 + y2 - y1)/2 + x1 * 60 + y1;
		if(ans / 60 < 10)
		{
			Console.WriteLine("0{0}:{1}",ans/60, ans%60);
		}
		else if(ans %60 < 10)
		{
			Console.WriteLine("{0}:0{1}",ans/60, ans%60);
		}
		else if(ans %60 < 10 && ans /60 < 10)
		{
			Console.WriteLine("0{0}:0{1}",ans/60, ans%60);
		}
		else
		{
			Console.WriteLine("0{0}:{1}",ans/60, ans%60);
		}
	}
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _12oct
{
    class Program
    {
        static void Main(string[] args)
        {

            string[] line = Console.ReadLine().Split(':');
            string[] line2 = Console.ReadLine().Split(':');
            int h1 = Convert.ToInt32(line[0]);
            int m1 = Convert.ToInt32(line[1]);
            int h2 = Convert.ToInt32(line2[0]);
            int m2 = Convert.ToInt32(line2[1]);

            int h3 = 0;
            int m3 = 0;

            if(m1 == 0 && m2 == 0)
            {
                h3 = ((h2 - h1) / 2) + h1;
                m3 = 30;
            }
            else
            {
                if(m1 == m2)
                {
                    h3 = ((h2 - h1) / 2) + h1;
                    m3 = m1;
                }
                else
                {
                    h3 = ((h2 - h1) / 2) + h1;
                    m3 = ((m2 - m1) / 2) + m1;
                }
            }
            string Rh3 = Convert.ToString(h3);
            string Rm3 = Convert.ToString(m3);
            if (Rh3.Length == 1) Rh3 = "0" + Convert.ToString(h3);
            if (Rm3.Length == 1) Rm3 = "0" + Convert.ToString(m3);
            Console.WriteLine(Rh3 + ":" + Rm3);

        }

    }
}

using System;
using System.Collections.Generic;
using System.Text;

namespace TestConsoleApplication
{
    public class CodeForces
    {
        public static void Main(string[] args)
        {
            DateTime start = DateTime.Parse(Console.ReadLine());
            DateTime end = DateTime.Parse(Console.ReadLine());
            DateTime middle = start.Add(TimeSpan.FromMinutes(end.Subtract(start).TotalMinutes / 2));
            Console.Write(middle.Hour + ":" + middle.Minute);
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CSharpTest
{
    class Program
    {
        public static void func1(int h1, int m1, int h2, int m2)
        {

            int hTempResult = h2 - h1;
            int mTmpResult = m2 - m1;

            int mDif = (hTempResult * 60 + mTmpResult) / 2;
            int hPlus = mDif / 60;
            int mPlus = mDif % 60;

            int hResult = h1 + hPlus;
            int mResult = m1 + mPlus;

            if (mResult > 60)
            {
                mResult = mResult % 60;
                hResult++;
            }

            var hResultS = "";

            if (hResult < 10)
                hResultS = "0" + hResult;
            else
                hResultS = hResult.ToString();

            var mResultS = "";

            if (mResult < 10)
                mResultS = "0" + mResult;
            else
                mResultS = mResult.ToString();

            Console.WriteLine(hResultS + ":" + mResultS);

        }

        static void Main(string[] args)
        {

            int h1;
            int m1;
            int h2;
            int m2;

            var s = Console.ReadLine();

            var strings = s.Split(':');
            h1 = int.Parse(strings[0]);
            m1 = int.Parse(strings[1]);

            s = Console.ReadLine();
            strings = s.Split(':');
            h2 = int.Parse(strings[0]);
            m2 = int.Parse(strings[1]);
            func1(h1, m1, h2, m2);

            //func1(10, 0, 11, 0); //10 30
            //func1(11, 10, 11, 12);//11 11
            //func1(1, 2, 3, 2);// 2 2
            //func1(17, 30, 18, 40);// 2 2

        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CSharpTest
{
    class Program
    {

        static void Main(string[] args)
        {

            int h1;
            int m1;
            int h2;
            int m2;

            //var s = Console.ReadLine();
            var s = "01:02";

            var strings = s.Split(':');
            h1 = int.Parse(strings[0]);
            m1 = int.Parse(strings[1]);

            var s1 = "03:02";
           // s = Console.ReadLine();
            strings = s1.Split(':');
            h2 = int.Parse(strings[0]);
            m2 = int.Parse(strings[1]);

            int hTempResult = h2 - h1;
            int mTmpResult = m2 - m1;

            int mDif = (hTempResult * 60 + mTmpResult)/2;
            int hPlus = mDif / 60;
            int mPlus = mDif % 60;

            int hResult = h1 + hPlus;
            int mResult = m1 + mPlus;

            var hResultS = "";

            if (hResult < 10)
                hResultS = "0" + hResultS;
            else
                hResultS = hResult.ToString();

            var mResultS = "";

            if (mResult < 10)
                mResultS = "0" + mResultS;
            else
                mResultS = mResult.ToString();

            Console.WriteLine(hResultS + ":" + mResultS);
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CSharpTest
{
    class Program
    {

        static void Main(string[] args)
        {

            int h1;
            int m1;
            int h2;
            int m2;

            var s = Console.ReadLine();
            //var s = "01:02";

            var strings = s.Split(':');
            h1 = int.Parse(strings[0]);
            m1 = int.Parse(strings[1]);

            //var s1 = "03:02";
            s = Console.ReadLine();
            strings = s.Split(':');
            h2 = int.Parse(strings[0]);
            m2 = int.Parse(strings[1]);

            int hTempResult = h2 - h1;
            int mTmpResult = m2 - m1;

            int mDif = (hTempResult * 60 + mTmpResult)/2;
            int hPlus = mDif / 60;
            int mPlus = mDif % 60;

            int hResult = h1 + hPlus;
            int mResult = m1 + mPlus;

            var hResultS = "";

            if (hResult < 10)
                hResultS = "0" + hResultS;
            else
                hResultS = hResult.ToString();

            var mResultS = "";

            if (mResult < 10)
                mResultS = "0" + mResultS;
            else
                mResultS = mResult.ToString();

            Console.WriteLine(hResultS + ":" + mResultS);
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CSharpTest
{
    class Program
    {
        public static void func1(int h1, int m1, int h2, int m2)
        {

            int hTempResult = h2 - h1;
            int mTmpResult = m2 - m1;

            int mDif = (hTempResult * 60 + mTmpResult) / 2;
            int hPlus = mDif / 60;
            int mPlus = mDif % 60;

            int hResult = h1 + hPlus;
            int mResult = m1 + mPlus;

            var hResultS = "";

            if (hResult < 10)
                hResultS = "0" + hResult;
            else
                hResultS = hResult.ToString();

            var mResultS = "";

            if (mResult < 10)
                mResultS = "0" + mResult;
            else
                mResultS = mResult.ToString();

            Console.WriteLine(hResultS + ":" + mResultS);

        }

        static void Main(string[] args)
        {

            int h1;
            int m1;
            int h2;
            int m2;

            var s = Console.ReadLine();

            var strings = s.Split(':');
            h1 = int.Parse(strings[0]);
            m1 = int.Parse(strings[1]);

            s = Console.ReadLine();
            strings = s.Split(':');
            h2 = int.Parse(strings[0]);
            m2 = int.Parse(strings[1]);
            func1(h1, m1, h2, m2);

            //func1(10, 0, 11, 0); //10 30
            //func1(11, 10, 11, 12);//11 11
            //func1(1, 2, 3, 2);// 2 2

        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CSharpTest
{
    class Program
    {

        static void Main(string[] args)
        {

            int h1;
            int m1;
            int h2;
            int m2;

            var s = Console.ReadLine();
            //var s = "11:10";

            var strings = s.Split(':');
            h1 = int.Parse(strings[0]);
            m1 = int.Parse(strings[1]);

            //var s1 = "11:12";
            s = Console.ReadLine();
            strings = s.Split(':');
            h2 = int.Parse(strings[0]);
            m2 = int.Parse(strings[1]);

            int hTempResult = h2 - h1;
            int mTmpResult = m2 - m1;

            int mDif = (hTempResult * 60 + mTmpResult)/2;
            int hPlus = mDif / 60;
            int mPlus = mDif % 60;

            int hResult = h1 + hPlus;
            int mResult = m1 + mPlus;

            var hResultS = "";

            if (hResult < 10)
                hResultS = "0" + hResultS;
            else
                hResultS = hResult.ToString();

            var mResultS = "";

            if (mResult < 10)
                mResultS = "0" + mResultS;
            else
                mResultS = mResult.ToString();

            Console.WriteLine(hResult + ":" + mResult);
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication43
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] s = Console.ReadLine().Split(':');
            string[] s1 = Console.ReadLine().Split(':');
            int n = Convert.ToInt32(s[1]) + Convert.ToInt32(s[0]) * 60;
            int f = Convert.ToInt32(s1[1]) + Convert.ToInt32(s1[0]) * 60;
            Console.WriteLine(n);
                Console.WriteLine(f);
            int sh = 0;
            int sm = 0;
            int h = (n + f) / 2;
            sh = h / 60;
            sm = h % 60;
            Console.WriteLine(sh/10+""+sh%10 +":" + sm/10+""+sm%10);
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication43
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] s = Console.ReadLine().Split(':');
            string[] s1 = Console.ReadLine().Split(':');
            int a = (Convert.ToInt32(s[0]) + Convert.ToInt32(s1[0])) /2;
            if (a < 10)
            {

            }
            int b = (Convert.ToInt32(s[1]) + Convert.ToInt32(s1[1]))/2;
            if (b == 0)
            {
                b = 30;
            }
            Console.WriteLine(a/10+""+a%10+":"+b/10+"" +b%10);
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication43
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] s = Console.ReadLine().Split(':');
            string[] s1 = Console.ReadLine().Split(':');
            int a = (Convert.ToInt32(s[0]) + Convert.ToInt32(s1[0])) /2;
            if (a < 10)
            {

            }
            int b = (Convert.ToInt32(s[1]) + Convert.ToInt32(s1[1]))/2;
            if (Convert.ToInt32(s[0]) + Convert.ToInt32(s1[0]) % 2 != 0)
            {
                b += 30;
            }
            if (b == 0)
            {
                b = 30;
            }
            Console.WriteLine(a/10+""+a%10+":"+b/10+"" +b%10);
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp39
{
    class Program
    {
        static void Main(string[] args)
        {
            var arr1 = Array.ConvertAll(Console.ReadLine().Trim().Split(':'), int.Parse);
            int h1 = arr1[0];
            int m1 = arr1[1];

            var arr2 = Array.ConvertAll(Console.ReadLine().Trim().Split(':'), int.Parse);
            int h2 = arr2[0];
            int m2 = arr2[1];

            int m3 = ((h2 - h1) * 60 + (m2 - m1))/2;
            int h3 = m3 / 60 + h1;

            m3 = m3 % 60 + m1;
            string strm3 = Convert.ToString(m3);
            string strh3 = Convert.ToString(h3);
            if (m3 < 10)
            {
                strm3 = "0";
                strm3 += Convert.ToString(m3);
            }
            if (h3 < 10)
            {
                strh3 = "0";
                strh3 += Convert.ToString(h3);
            }

            Console.WriteLine(strh3 + ":" + strm3);
        }
    }
}

using System;
using System.Collections.Generic;

namespace ConsoleApp27
{
    class Program
    {
        static void Main(string[] args)
        { string zero = "0";
            string ft = Console.ReadLine();
            string st = Console.ReadLine();
            string[] t1 = ft.Split(':');
            string[] t2 = st.Split(':');
            int h1 = Convert.ToInt32(t1[0]);
            int m1 = Convert.ToInt32(t1[1]);
            int h2 = Convert.ToInt32(t2[0]);
            int m2 = Convert.ToInt32(t2[1]);
            int[] answer = new int[2];
            if (h1 == h2 && m1 < m2)
            {
                answer[1] = (m1 + m2) / 2;
                answer[0] = h1;
            }
            else if (h1 < h2 && m1 == m2)
            {
                answer[0] = (h1 + h2) / 2;
                answer[1] = m1;
            }
            if (h1 < h2 && m1 < m2)
            {
                answer[1] = (m1 + m2) / 2;
                answer[0] = (h1+h2)/2;
            }
            string fa = Convert.ToString(answer[0]);
            string sa = Convert.ToString(answer[1]);
            if (answer[0] < 10)
                fa = zero + fa;
            if (answer[1] < 10)
                sa = zero + sa;
            Console.WriteLine(fa + ":" + sa);

        }
    }
}

using System;
using System.Collections.Generic;

namespace ConsoleApp27
{
    class Program
    {
        static void Main(string[] args)
        { string zero = "0";
            string ft = Console.ReadLine();
            string st = Console.ReadLine();
            string[] t1 = ft.Split(':');
            string[] t2 = st.Split(':');
            int h1 = Convert.ToInt32(t1[0]);
            int m1 = Convert.ToInt32(t1[1]);
            int h2 = Convert.ToInt32(t2[0]);
            int m2 = Convert.ToInt32(t2[1]);
            int[] answer = new int[2];
            if (h1 == h2 && m1 < m2)
            {
                answer[1] = (m1 + m2) / 2;
                answer[0] = h1;
            }
            else if (h1 < h2 && m1 == m2)
            { if ((h2 - h1) % 2 == 0) {
                    answer[0] = (h1 + h2) / 2;
                answer[1] = m1; }
            else
                {
                    answer[0] = (h1 + h2) / 2;

                    answer[1] = 30;
                }

            }
            if (h1 < h2 && m1 < m2)
            {
                answer[1] = (m1 + m2) / 2;
                answer[0] = (h1+h2)/2;
            }
            string fa = Convert.ToString(answer[0]);
            string sa = Convert.ToString(answer[1]);
            if (answer[0] < 10)
                fa = zero + fa;
            if (answer[1] < 10)
                sa = zero + sa;
            Console.WriteLine(fa + ":" + sa);

        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            string s = Console.ReadLine();
            int start = int.Parse(s.Substring(0, 2)) * 60 + int.Parse(s.Substring(3, 2));
            s = Console.ReadLine();
            int end= int.Parse(s.Substring(0, 2)) * 60 + int.Parse(s.Substring(3, 2));
            int middle = (end - start)/2;
            int hour = start / 60 + middle / 60;
            int minute = start % 60 + middle % 60 ;
            if (minute > 60)
            {
                hour += minute / 60;
                minute = minute % 60;
            };
            s = hour.ToString();
            string s1= minute.ToString();
            if (minute < 10)
                s = "0"+s;
            if (hour < 10)
                s1 = "0" +s1;
            Console.WriteLine(s+":"+s1);

        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            string s = Console.ReadLine();
            int start = int.Parse(s.Substring(0, 2)) * 60 + int.Parse(s.Substring(3, 2));
            s = Console.ReadLine();
            int end= int.Parse(s.Substring(0, 2)) * 60 + int.Parse(s.Substring(3, 2));
            int middle = (end - start)/2;
            int hour = start / 60 + middle / 60;
            int minute = start % 60 + middle % 60 ;
            if (minute > 60)
            {
                hour += minute / 60;
                minute = minute % 60;
            };
            s = hour.ToString();
            string s1= minute.ToString();
            if (minute < 10)
                s1 = "0"+s1;
            if (hour < 10)
                s = "0" +s;
            Console.WriteLine(s+":"+s1);

        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            string s = Console.ReadLine();
            int h1 = int.Parse(s.Substring(0, 2));
            int m1 = int.Parse(s.Substring(3, 2));
            s = Console.ReadLine();
            int h2 = int.Parse(s.Substring(0, 2));
            int m2 = int.Parse(s.Substring(3, 2));
            int dh = h2 - h1;
            int dm = m2 - m1;
            dm += dh * 60;
            dm /= 2;
            dh = dm / 60;
            dm = dm % 60;
            h1 += dh;
            m1 += dm;

            Console.WriteLine($"{h1/10}{h1%10}:{m1/10}{m1%10}");
        }
    }
}

using System;
using System.Text;
using System.Collections.Generic;
class Problem
{
    static void Main()
    {
        var start=Array.ConvertAll( Console.ReadLine().Split( ':' ),Convert.ToInt32);
        var end=Array.ConvertAll( Console.ReadLine().Split( ':' ),Convert.ToInt32);
        if(( start[0] + end[0] ) % 2 == 0)
            Console.WriteLine( "{0:00}" + ":" + "{1:00}", ( start[0] + end[0] ) / 2, ( start[1] + end[1] ) / 2 );

        else
            Console.WriteLine( "{0:00}" + ":" + "{1:00}", ( start[0] + end[0] ) / 2, ( start[1] + end[1] +60)%60 / 2 );
    }
}

using System;
using System.Text;
using System.Collections.Generic;
class Problem
{
    static void Main()
    {
        var start=Array.ConvertAll( Console.ReadLine().Split( ':' ),Convert.ToInt32);
        var end=Array.ConvertAll( Console.ReadLine().Split( ':' ),Convert.ToInt32);
        if(( start[0] + end[0] ) % 2 == 0)
            Console.WriteLine( "{0:00}" + ":" + "{1:00}", ( start[0] + end[0] ) / 2, ( start[1] + end[1] ) / 2 );

        else
            Console.WriteLine( "{0:00}" + ":" + "{1:00}", ( start[0] + end[0] ) / 2, ( start[1] + end[1] +60) / 2 );
    }
}

using System;
using System.Text;
using System.Collections.Generic;
class Problem
{
    static void Main()
    {
        var start=Array.ConvertAll( Console.ReadLine().Split( ':' ),Convert.ToInt32);
        var end=Array.ConvertAll( Console.ReadLine().Split( ':' ),Convert.ToInt32);
        Console.WriteLine( "{0:00}" + ":" + "{1:00}", ( start[0] + end[0] ) / 2, ( start[1] + end[1] ) / 2 );

    }
}

using System;
using System.Text;
using System.Collections.Generic;
class Problem
{
    static void Main()
    {
        var start=Array.ConvertAll( Console.ReadLine().Split( ':' ),Convert.ToInt32);
        var end=Array.ConvertAll( Console.ReadLine().Split( ':' ),Convert.ToInt32);
        if(( start[0] + end[0] ) % 2 == 0)
            Console.WriteLine( "{0:00}" + ":" + "{1:00}", ( start[0] + end[0] ) / 2, ( start[1] + end[1] ) / 2 );

        else
            if(start[1]+end[1]<60)
            Console.WriteLine( "{0:00}" + ":" + "{1:00}", ( start[0] + end[0] ) / 2, ( start[1] + end[1] )%60 / 2 );
            else
                Console.WriteLine( "{0:00}" + ":" + "{1:00}", ( start[0] + end[0] ) / 2 +1, ( start[1] + end[1] -60) % 60 / 2 );
    }
}

using System;
using System.Text;
using System.Collections.Generic;
class Problem
{
    static void Main()
    {
        var start=Array.ConvertAll( Console.ReadLine().Split( ':' ),Convert.ToInt32);
        var end=Array.ConvertAll( Console.ReadLine().Split( ':' ),Convert.ToInt32);
        if(( start[0] + end[0] ) % 2 == 0)
            Console.WriteLine( "{0:00}" + ":" + "{1:00}", ( start[0] + end[0] ) / 2, ( start[1] + end[1] ) / 2 );

        else
            if(start[1]+end[1]<60)
            Console.WriteLine( "{0:00}" + ":" + "{1:00}", ( start[0] + end[0] ) / 2, ( start[1] + end[1] ) / 2 );
            else
                Console.WriteLine( "{0:00}" + ":" + "{1:00}", ( start[0] + end[0] ) / 2 +1, ( start[1] + end[1] -60)  / 2 );
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _544
{
    class Program
    {
        static void Main(string[] args)

        {
            string a, b;
            int h1, h2, m1, m2, sum_h, sum_m;
            Console.WriteLine("Введите время начала контеста в формате hh:mm");
            a = Console.ReadLine();
            h1 = Convert.ToInt32(a.Substring(0, a.Length - 3));
            m1 = Convert.ToInt32(a.Substring(3));
            Console.WriteLine("Введите время окончания контеста в формате hh:mm");
            b = Console.ReadLine();
            h2 = Convert.ToInt32(b.Substring(0, b.Length - 3));
            m2 = Convert.ToInt32(b.Substring(3));
            if ((h1 == h2) || (h2 - h1 == 1)) sum_h = h1;
            else sum_h = (h1 + h2) / 2;
            if (m1 == 0 && m2 == 0) sum_m = 30;
            else if (m1 == m2) sum_m = m1;
            else sum_m = (m1 + m2) / 2;
            Console.WriteLine("Время середины контеста:");
            if (sum_h < 10) Console.Write('0');
            Console.Write(sum_h);
            Console.Write(':');
            if (sum_m < 10) Console.Write('0');
            Console.Write(sum_m);
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _544
{
    class Program
    {
        static void Main(string[] args)

        {
            string a, b;
            int h1, h2, m1, m2, sum_h, sum_m;
            a = Console.ReadLine();
            h1 = Convert.ToInt32(a.Substring(0, a.Length - 3));
            m1 = Convert.ToInt32(a.Substring(3));
            b = Console.ReadLine();
            h2 = Convert.ToInt32(b.Substring(0, b.Length - 3));
            m2 = Convert.ToInt32(b.Substring(3));
            if ((h1 == h2) || (h2 - h1 == 1)) sum_h = h1;
            else sum_h = (h1 + h2) / 2;
            if (m1 == 0 && m2 == 0) sum_m = 30;
            else if (m1 == m2) sum_m = m1;
            else sum_m = (m1 + m2) / 2;
            if (sum_h < 10) Console.Write('0');
            Console.Write(sum_h);
            Console.Write(':');
            if (sum_m < 10) Console.Write('0');
            Console.Write(sum_m);
        }
    }
}

using System.CodeDom.Compiler;
using System.Collections.Generic;
using System.Collections;
using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.Serialization;
using System.Text.RegularExpressions;
using System.Text;
using System;

class Solution {
    static void Main(string[] args) {
		var arr =  Array.ConvertAll(Console.ReadLine().Trim().Split(':'), Convert.ToInt32);
        var h1 = arr[0];
        var m1 = arr[1];
        arr =  Array.ConvertAll(Console.ReadLine().Trim().Split(':'), Convert.ToInt32);
        var h2 = arr[0];
        var m2 = arr[1];

        var tm = h1*60+h2*60+m1+m2;
        tm = tm /2;

        Console.WriteLine($"{tm/60}:{tm%60}");
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace opDiv3
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] time = Console.ReadLine().Split(new char[] {':'});
            int h1 = Convert.ToInt32(time[0]);
            int m1 = Convert.ToInt32(time[1]);

            string[] time2 = Console.ReadLine().Split(new char[] { ':' });
            int h2 = Convert.ToInt32(time2[0]);
            int m2 = Convert.ToInt32(time2[1]);

            double h3 = ((h2 - h1)/2.00)+h1;
            int m3 = ((m2 - m1) / 2) + m1;

            if (h3 % 1 != 0)
            {
                m3+=30;
                h3 = Math.Round(h3);
            }

            if(m3<0)
            {
                h3--;
                m3 *= -1;
            }

            if (m3 < 10 && h3 < 10) Console.WriteLine("0" + h3 + ":"+"0" + m3);
            else if (m3 < 10) Console.WriteLine(h3 + ":" + "0" + m3);
            else if (h3 < 10) Console.WriteLine("0"+h3 + ":"  + m3);
            else Console.WriteLine( h3 + ":"  + m3);
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace opDiv3
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] time = Console.ReadLine().Split(new char[] {':'});
            int h1 = Convert.ToInt32(time[0]);
            int m1 = Convert.ToInt32(time[1]);

            string[] time2 = Console.ReadLine().Split(new char[] { ':' });
            int h2 = Convert.ToInt32(time2[0]);
            int m2 = Convert.ToInt32(time2[1]);

            double h3 = ((h2 - h1)/2.0)+h1;
            int m3 = ((m2 - m1) / 2) + m1;

            if (h3 % 1 != 0)
            {
                m3+=30;
                h3 -=0.5;

            }

            if(m3<0)
            {
                h3--;
                m3 *= -1;
            }

            if (m3 < 10 && h3 < 10) Console.WriteLine("0" + h3 + ":"+"0" + m3);
            else if (m3 < 10) Console.WriteLine(h3 + ":" + "0" + m3);
            else if (h3 < 10) Console.WriteLine("0"+h3 + ":"  + m3);
            else Console.WriteLine( h3 + ":"  + m3);
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace opDiv3
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] time = Console.ReadLine().Split(new char[] {':'});
            int h1 = Convert.ToInt32(time[0]);
            int m1 = Convert.ToInt32(time[1]);

            string[] time2 = Console.ReadLine().Split(new char[] { ':' });
            int h2 = Convert.ToInt32(time2[0]);
            int m2 = Convert.ToInt32(time2[1]);

            double h3 = ((h2 - h1)/2.0)+h1;
            int m3 = ((m2 - m1) / 2) + m1;

            if (h3 % 1 != 0)
            {
                m3+=30;
                h3 -=0.5;

            }

            if (m3 > 60)
            {
                m3 -= 60;
                h3++;
            }

            if(m3<0)
            {
                h3--;
                m3 *= -1;
            }

            if (m3 < 10 && h3 < 10) Console.WriteLine("0" + h3 + ":"+"0" + m3);
            else if (m3 < 10) Console.WriteLine(h3 + ":" + "0" + m3);
            else if (h3 < 10) Console.WriteLine("0"+h3 + ":"  + m3);
            else Console.WriteLine( h3 + ":"  + m3);
        }
    }
}

//using MetadataExtractor;
//using MetadataExtractor.Formats.Exif;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;

namespace CodeForces
{
    public static class MainClass
    {

        static int ReadIntLine()
        {
            return int.Parse(Console.ReadLine());
        }

        static void ReadInt(ref int a)
        {
            a = ReadIntArrayLine()[0];
        }

        static void ReadInts(ref int a, ref int b)
        {
            var x = ReadIntArrayLine();
            a = x[0]; b = x[1];
        }

        static void ReadInts(ref int a, ref int b, ref int c)
        {
            var x = ReadIntArrayLine();
            a = x[0]; b = x[1]; c = x[2];
        }

        static void ReadInts(ref int a, ref int b, ref int c, ref int d)
        {
            var x = ReadIntArrayLine();
            a = x[0]; b = x[1]; c = x[2]; d = x[3];
        }

        static void ReadInts(ref int a, ref int b, ref int c, ref int d, ref int e)
        {
            var x = ReadIntArrayLine();
            a = x[0]; b = x[1]; c = x[2]; d = x[3]; e = x[4];
        }

        static void ReadInts(ref int a, ref int b, ref int c, ref int d, ref int e, ref int f)
        {
            var x = ReadIntArrayLine();
            a = x[0]; b = x[1]; c = x[2]; d = x[3]; e = x[4]; f = x[5];
        }

        static int[] ReadIntArrayLine()
        {
            char[] sep = { ' ' };
            return Console.ReadLine().Split(sep, StringSplitOptions.RemoveEmptyEntries).Select(x => int.Parse(x)).ToArray();
        }

        static void PrintLn(object obj)
        {
            Console.WriteLine(obj.ToString());
        }

        /*public static string Reverse(string s)
        {
            char[] charArray = s.ToCharArray();
            Array.Reverse(charArray);
            return new string(charArray);
        }*/

        public static void PrintLnCollection<T>(IEnumerable<T> col)
        {
            PrintLn(string.Join(" ", col));
        }

        public static void PrintLn(params object[] v)
        {
            PrintLnCollection(v);
        }

        public static string ReadLine()
        {
            return Console.ReadLine();
        }

        public static string MySubstring(this string str, int start, int finish)
        {
            if (start > finish) return "";
            return str.Substring(start, finish - start + 1);
        }

        public static string Reverse(this string str)
        {
            if (str == null) return null;

            return new string(str.ToArray().Reverse().ToArray());
        }
        public static bool IsInRange(this int a, int lb, int ub)
        {
            return (a >= lb) && (a <= ub);
        }

        private static void mergeDS(int i, int j, int[] a)
        {
            int t = a[j];
            for (int ii = 0; ii < a.Length; ii++)
            {
                if (a[ii] == t)
                    a[ii] = a[i];
            }
        }

        private static T MyMax<T>(params T[] a)
        {
            return a.Max();
        }

        private static T MyMin<T>(params T[] a)
        {
            return a.Min();
        }

        private static int[] GetPrimesLessThan(int x)
        {
            if (x < 2)
                return new int[0];

            int[] a = new int[x];

            a[0] = 1; a[1] = 1;

            for (int i = 0; i < a.Length; i++)
            {
                if (a[i] == 0)
                    for (int j = 2 * i; j < a.Length; j += i)
                    {
                        a[j] = 1;
                    }
            }

            var abc = new List<int>(x);

            for (int i = 0; i < a.Length; i++)
            {
                if (a[i] == 0)
                    abc.Add(i);
            }

            return abc.ToArray();
        }

        private static int FindNearestLEQElementInTheArray(int[] a, int startIndex, int endIndex, int target)
        {
            if (startIndex == endIndex)
            {
                if (a[startIndex] <= target)
                    return startIndex;
                else
                    return -1;
            }

            if (startIndex + 1 == endIndex)
            {
                if (a[endIndex] <= target)
                    return endIndex;
                else if (a[startIndex] <= target)
                    return startIndex;
                else
                    return -1;
            }

            int mid = (startIndex + endIndex) / 2;
            if (target == a[mid])
                return mid;
            else if (target < a[mid])
                return FindNearestLEQElementInTheArray(a, startIndex, mid - 1, target);
            else
                return FindNearestLEQElementInTheArray(a, mid, endIndex, target);
        }

        private static int FindNearestLEQElementInTheArray(int[] a, int target)
        {
            return FindNearestLEQElementInTheArray(a, 0, a.Length - 1, target);
        }

        private static int FindRightMostLEQElementInTheArray(int[] a, int startIndex, int endIndex, int target)
        {
            if (startIndex == endIndex)
            {
                if (a[startIndex] <= target)
                    return startIndex;
                else
                    return -1;
            }

            if (startIndex + 1 == endIndex)
            {
                if (a[endIndex] <= target)
                    return endIndex;
                else if (a[startIndex] <= target)
                    return startIndex;
                else
                    return -1;
            }

            int mid = (startIndex + endIndex) / 2;
            if (target < a[mid])
                return FindRightMostLEQElementInTheArray(a, startIndex, mid - 1, target);
            else
                return FindRightMostLEQElementInTheArray(a, mid, endIndex, target);
        }

        private static int FindRightMostLEQElementInTheArray(int[] a, int target)
        {
            return FindRightMostLEQElementInTheArray(a, 0, a.Length - 1, target);
        }

        private static int gcd(int a, int b)
        {
            int r = a % b;
            while (r != 0)
            {
                a = b;
                b = r;
                r = a % b;
            }
            return b;
        }

        //----------------------------------------------------------------------------

        static string GetSha1(string filePath)
        {
            using (FileStream fs = new FileStream(filePath, FileMode.Open))
            using (BufferedStream bs = new BufferedStream(fs))
            {
                using (SHA1Managed sha1 = new SHA1Managed())
                {
                    byte[] hash = sha1.ComputeHash(bs);
                    StringBuilder formatted = new StringBuilder(2 * hash.Length);
                    foreach (byte b in hash)
                    {
                        formatted.AppendFormat("{0:X2}", b);
                    }

                    return formatted.ToString();
                }
            }
        }

        static bool canFit(int a1, int b1, int a2, int b2)
        {
            int[] r1 = { a1, b1 };
            int[] r2 = { a2, b2 };

            Array.Sort(r1);
            Array.Sort(r2);

            bool ans = (r1[0] <= r2[0]) && (r1[1] <= r2[1]);

            return ans;

        }

        class Pair
        {
            public int first { get; set; }
            public int second { get; set; }
        }

        class Coord
        {
            public int x;
            public int y;
            public double d;
        }

        public static double dist(int x1,int y1,int x2,int y2)
        {
            int dx = x2 - x1;
            int dy = y2 - y1;

            return Math.Sqrt(dx * dx + dy * dy);

        }
        static void Main(string[] args)
        {
			var t1 = ReadLine().Split(':').Select(x=>Convert.ToInt32(x)).ToArray();
			var t2 = ReadLine().Split(':').Select(x=>Convert.ToInt32(x)).ToArray();

			int m1 = t1[0]*60+t1[1];
			int m2 = t2[0]*60+t2[1];

			int mid = m1+ (m2-m1)/2;

			PrintLn(mid/60+":"+mid%60);

        }

    }

}