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 Rust (1.15.1) (judge verdict: Accepted)

use std::io::stdin;

macro_rules! read {
    ($t: ty) => {{
        let mut line = String::new();
        stdin().read_line(&mut line);
        line.trim().parse::<$t>().unwrap()
    }};
    ($($t: ty), *) => {{
        let mut line = String::new();
        stdin().read_line(&mut line);
        let mut iter = line.split_whitespace();
        (
            $(iter.next().unwrap().parse::<$t>().unwrap(), )*
        )
    }}
}
macro_rules! reads {
    ($t:ty) => {{
        let mut v = vec![];
        let mut line = String::new();
        stdin().read_line(&mut line);
        let mut iter = line.split_whitespace();
        while let Some(n) = iter.next() {
            v.push(n.parse::<$t>().unwrap());
        }
        v
    }};
    ($e:expr, $t:ty) => {{
        let mut v = vec![];
        for _ in 0..$e {
            let mut line = String::new();
            stdin().read_line(&mut line);
            v.push(line.trim().parse::<$t>().unwrap());
        }
        v
    }};
}

fn is_yymm(yy: usize, mm: usize) -> bool {
    mm < 13 && mm > 0
}

fn is_mmyy(mm: usize, yy: usize) -> bool {
    mm < 13 && mm > 0
}

fn main() {
    let s = read!(String);
    
    let f1 = s[0..2].parse::<usize>().unwrap();
    let f2 = s[2..4].parse::<usize>().unwrap();

    let b1 = is_yymm(f1, f2);
    let b2 = is_mmyy(f1, f2);

    if b1 && b2 {
        println!("AMBIGUOUS");
    } else if b1 {
        println!("YYMM");
    } else if b2 {
        println!("MMYY");
    } else {
        println!("NA");
    }
}