Problem:
Score : 200 points

Problem Statement

You have a digit sequence S of length 4. You are wondering which of the following formats S is in:

YYMM format: the last two digits of the year and the two-digit representation of the month (example: 01 for January), concatenated in this order

MMYY format: the two-digit representation of the month and the last two digits of the year, concatenated in this order

If S is valid in only YYMM format, print YYMM; if S is valid in only MMYY format, print MMYY; if S is valid in both formats, print AMBIGUOUS; if S is valid in neither format, print NA.

Constraints

S is a digit sequence of length 4.

Input

Input is given from Standard Input in the following format:

S

Output

Print the specified string: YYMM, MMYY, AMBIGUOUS or NA.

Sample Input 1

1905

Sample Output 1

YYMM

May XX19 is a valid date, but 19 is not valid as a month. Thus, this string is only valid in YYMM format.

Sample Input 2

0112

Sample Output 2

AMBIGUOUS

Both December XX01 and January XX12 are valid dates. Thus, this string is valid in both formats.

Sample Input 3

1700

Sample Output 3

NA

Neither 0 nor 17 is valid as a month. Thus, this string is valid in neither format.

Solution in C# (Mono 4.6.2.0) (judge verdict: Accepted)

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

namespace paiza
{
    class Program
    {
        static void Main(string[] args)
        {
            //var NK = Console.ReadLine().Split().Select(x => int.Parse(x)).ToArray();
            var S = Console.ReadLine();

            bool isYYMM;
            bool isMMYY;

            if (int.Parse(S[0].ToString()) > 2 || (int.Parse(S[0].ToString()) == 1 && int.Parse(S[1].ToString()) > 2) || (int.Parse(S[0].ToString()) == 0 && int.Parse(S[1].ToString()) == 0))
            {
                isMMYY = false;
            }
            else
            {
                isMMYY = true;
            }

            if (int.Parse(S[2].ToString()) > 2 || (int.Parse(S[2].ToString()) == 1 && int.Parse(S[3].ToString()) > 2) || (int.Parse(S[2].ToString()) == 0 && int.Parse(S[3].ToString()) == 0))
            {
                isYYMM = false;
            }
            else
            {
                isYYMM = true;
            }

            var output = "";
            if (isMMYY && !isYYMM)
            {
                output = "MMYY";
            }
            else if (!isMMYY && isYYMM)
            {
                output = "YYMM";
            }
            else if (isMMYY && isYYMM)
            {
                output = "AMBIGUOUS";
            }
            else if (!isMMYY && !isYYMM)
            {
                output = "NA";
            }
            Console.WriteLine(output);
            ////foreach (var (c, i) in S.Select((x, i) => (x, i)))
            //for (var i = 0; i < NK[0]; i++)
            //{
            //    Console.Write(i + 1 == NK[1] ? S[i].ToString().ToLower() : S[i].ToString());
            //}
            //Console.WriteLine();
            //    var xai = Console.ReadLine().Split().Select(x => int.Parse(x)).ToArray();
            //    var N = int.Parse(Console.ReadLine());

            //    var p = new int[N];
            //    foreach (var i in Enumerable.Range(0, N))
            //    {
            //        p[i] = int.Parse(Console.ReadLine());
            //    }

            //    var reverses = new Dictionary<int, int>();

            //    for (var i = 0; i < 6; i++)
            //    {
            //        if (i % 2 == 0)
            //        {
            //            reverses.Add(xai[i], xai[i + 1]);
            //        }
            //        else
            //        {
            //            reverses.Add(xai[i], xai[i - 1]);
            //        }
            //    }

            //    var point = 0;
            //    var number = p[0];

            //    for (var i = 0; i < N - 1; i++)
            //    {
            //        if (reverses[number] == p[i + 1])
            //        {
            //            point += 2;
            //        }
            //        else if (number == p[i + 1])
            //        {

            //        }
            //        else
            //        {
            //            point += 1;
            //        }
            //        number = p[i + 1];
            //    }

            //    Console.WriteLine(point);
            //}
        }
    }
}