Problem:
Score : 100 points

Problem Statement

You are given a string S as input. This represents a valid date in the year 2019 in the yyyy/mm/dd format. (For example, April 30, 2019 is represented as 2019/04/30.)

Write a program that prints Heisei if the date represented by S is not later than April 30, 2019, and prints TBD otherwise.

Constraints

S is a string that represents a valid date in the year 2019 in the yyyy/mm/dd format.

Input

Input is given from Standard Input in the following format:

S

Output

Print Heisei if the date represented by S is not later than April 30, 2019, and print TBD otherwise.

Sample Input 1

2019/04/30

Sample Output 1

Heisei

Sample Input 2

2019/11/01

Sample Output 2

TBD

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> {
    read::<String>()
        .split_whitespace()
        .map(|e| e.parse().ok().unwrap())
        .collect()
}

fn read_vec2<T: std::str::FromStr>(n: usize) -> Vec<Vec<T>> {
    (0..n).map(|_| read_vec()).collect()
}

fn read_col<T: std::str::FromStr>(n: usize) -> Vec<T> {
    (0..n).map(|_| read()).collect()
}

struct Node {
    parent: u64,
    size: u64,
}

fn findParent(n: u64, nodes: &mut Vec<Node>) -> u64 {
    let p = nodes[n as usize].parent;
    if p == 0 {
        n
    } else {
        let tmp = findParent(p, nodes);
        nodes[n as usize].parent = tmp;
        tmp
    }
}

fn union(a: u64, b: u64, nodes: &mut Vec<Node>) -> u64 {
    let pa = findParent(a, nodes);
    let pb = findParent(b, nodes);
    if pa == pb {
        0
    } else {
        let sa = nodes[pa as usize].size;
        let sb = nodes[pb as usize].size;
        if sa > sb {
            nodes[pb as usize].parent = pa;
            nodes[pa as usize].size = sa + sb;
        } else {
            nodes[pa as usize].parent = pb;
            nodes[pb as usize].size = sa + sb;
        }
        sa * sb
    }
}

fn main() {
    let v: Vec<u32> = read::<String>()
        .split('/')
        .map(|e| e.parse().ok().unwrap())
        .collect();

    if v[1] <= 4 {
        println!("Heisei");
    } else {
        println!("TBD");
    }
}