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.42.0) (judge verdict: Accepted)

use std::io::*;
use std::str::FromStr;

pub fn read<T: FromStr>() -> T {
    let stdin = stdin();
    let stdin = stdin.lock();
    let token: String = stdin
        .bytes()
        .map(|c| c.expect("failed to read char") as char)
        .skip_while(|c| c.is_whitespace())
        .take_while(|c| !c.is_whitespace())
        .collect();
    token.parse().ok().expect("failed to parse token")
}

fn main() {
    let s: Vec<char> = read::<String>().chars().collect();
    let year = &s[..4];
    let year_num: i64 = year.iter().collect::<String>().parse().unwrap();
    let month = &s[5..7];
    let month_num: i64 = month.iter().collect::<String>().parse().unwrap();
    let day = &s[8..10];
    let day_num: i64 = day.iter().collect::<String>().parse().unwrap();

    if year_num < 2019 {
        println!("{}", "Heisei");
        return;
    }
    if year_num > 2019 {
        println!("{}", "TBD");
        return;
    }

    if month_num < 4 {
        println!("{}", "Heisei");
        return;
    }

    if month_num > 4 {
        println!("{}", "TBD");
        return;
    }

    if day_num <= 30 {
        println!("{}", "Heisei");
        return;
    }
    if day_num > 30 {
        println!("{}", "TBD");
        return;
    }
}