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)


fn read<T: std::str::FromStr>() -> T {
    let mut s = String::new();
    std::io::stdin().read_line(&mut s).ok();
    s.trim().parse().ok().unwrap()
}

fn read_vec<T: std::str::FromStr>() -> Vec<T> {
    let mut s = String::new();
    std::io::stdin().read_line(&mut s).ok();
    s.trim().split_whitespace()
        .map(|e| e.parse().ok().unwrap()).collect()
}

fn range_year(n: usize) -> bool {
    ((12 < n) && (n <= 99)) || ((0 <= n) && (n <= 99))
}

fn range_both(n: usize) -> bool {
    (1 <= n) && (n <= 12)
}

fn range_month(n: usize) -> bool {
    range_both(n)
}

fn main(){
    let n: usize = read();
    let f = n / 100;
    let l = n % 100;
    if range_both(f) && range_both(l) {
        println!("AMBIGUOUS");
    }
    else if range_month(f) && range_year(l) {
        println!("MMYY");
    }
    else if range_year(f) && range_month(l) {
        println!("YYMM");
    }
    else if range_year(f) && range_year(l) {
        println!("NA");
    }
}