//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.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 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.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);

        }

    }

}