Problem:
Score: 100 points

Problem Statement

We have two distinct integers A and B.

Print the integer K such that |A - K| = |B - K|.

If such an integer does not exist, print IMPOSSIBLE instead.

Constraints

All values in input are integers.

0 \leq A,\ B \leq 10^9

A and B are distinct.

Input

Input is given from Standard Input in the following format:

A B

Output

Print the integer K satisfying the condition.

If such an integer does not exist, print IMPOSSIBLE instead.

Sample Input 1

2 16

Sample Output 1

9

|2 - 9| = 7 and |16 - 9| = 7, so 9 satisfies the condition.

Sample Input 2

0 3

Sample Output 2

IMPOSSIBLE

No integer satisfies the condition.

Sample Input 3

998244353 99824435

Sample Output 3

549034394

Solution in C# (.NET Core 3.1.201) (judge verdict: Runtime Error)

using System;
using System.Linq;

namespace atc
{
    class Program
    {
        static void Main(string[] args)
        {
            var sw = new System.IO.StreamWriter(Console.OpenStandardOutput()) { AutoFlush = false };
            Console.SetOut(sw);
            long player = long.Parse(Console.ReadLine());
            long[] town = Console.ReadLine().Split(' ').Select(i => long.Parse(i)).ToArray();
            long[] defeat = Console.ReadLine().Split(' ').Select(i => long.Parse(i)).ToArray();
            long count = 0;
            for (int iii = 0; iii < player; iii++)
            {
                if (town[iii] == defeat[iii])
                {
                    count += town[iii];
                }
                else if (town[iii] > defeat[iii])
                {
                    count += defeat[iii];
                    town[iii] -= defeat[iii];
                }
                else // (town[iii] < defeat[iii])
                {
                    count += town[iii];
                    defeat[iii] -= town[iii];
                    if (town[iii + 1] == defeat[iii])
                    {
                        count += town[iii + 1];
                    }
                    else if (town[iii + 1] > defeat[iii])
                    {
                        count += defeat[iii];
                        town[iii + 1] -= defeat[iii];
                    }
                    else // (town[iii] < defeat[iii])
                    {
                        count += town[iii + 1];
                        defeat[iii] -= town[iii + 1];
                    }
                }
            }
            Console.WriteLine(count);
            Console.Out.Flush();
        }
    }
}