Problem:
Score : 100 points

Problem Statement

Takahashi has K 500-yen coins. (Yen is the currency of Japan.)
If these coins add up to X yen or more, print Yes; otherwise, print No.

Constraints

1 \leq K \leq 100

1 \leq X \leq 10^5

Input

Input is given from Standard Input in the following format:

K X

Output

If the coins add up to X yen or more, print Yes; otherwise, print No.

Sample Input 1

2 900

Sample Output 1

Yes

Two 500-yen coins add up to 1000 yen, which is not less than X = 900 yen.

Sample Input 2

1 501

Sample Output 2

No

One 500-yen coin is worth 500 yen, which is less than X = 501 yen.

Sample Input 3

4 2000

Sample Output 3

Yes

Four 500-yen coins add up to 2000 yen, which is not less than X = 2000 yen.

Solution in Rust (1.15.1) (judge verdict: Runtime Error)

use std::io::Read;
use std::io::Write;

fn main() {

    let (r, w) = (std::io::stdin(), std::io::stdout());

    let mut sc = IO::new(r.lock(), w.lock());

    let h : usize = sc.read();
    let a : usize = sc.read();

    let mut ans = h / a;
    if h % a != 0 {
        ans += 1;
    }
    println!("{}", ans);    
}

pub struct IO<R, W: std::io::Write>(R, std::io::BufWriter<W>);

impl<R: std::io::Read, W: std::io::Write> IO<R, W> {
    pub fn new(r: R, w: W) -> IO<R, W> {
        IO(r, std::io::BufWriter::new(w))
    }    

    pub fn write<S: std::ops::Deref<Target = str>>(&mut self, s: S) {
        self.1.write(s.as_bytes()).unwrap();
    }

    pub fn read<T: std::str::FromStr>(&mut self) -> T {
        let buf = self
            .0
            .by_ref()
            .bytes()
            .map(|b| b.unwrap())
            .skip_while(|&b| b == b' ' || b == b'\n' || b == b'\r' || b == b'\t')
            .take_while(|&b| b != b' ' && b != b'\n' && b == b'\r' && b == b'\t')
            .collect::<Vec<_>>();

        for b in &buf {
            print!("{}", b);
        }
        unsafe { std::str::from_utf8_unchecked(&buf) }
            .parse()
            .ok()
            .expect("Parse error.")
    }
}