Problem:
Score: 100 points

Problem Statement

Takahashi the Jumbo will practice golf.

His objective is to get a carry distance that is a multiple of K, while he can only make a carry distance of between A and B (inclusive).

If he can achieve the objective, print OK; if he cannot, print NG.

Constraints

All values in input are integers.

1 \leq A \leq B \leq 1000

1 \leq K \leq 1000

Input

Input is given from Standard Input in the following format:

K
A B

Output

If he can achieve the objective, print OK; if he cannot, print NG.

Sample Input 1

7
500 600

Sample Output 1

OK

Among the multiples of 7, for example, 567 lies between 500 and 600.

Sample Input 2

4
5 7

Sample Output 2

NG

No multiple of 4 lies between 5 and 7.

Sample Input 3

1
11 11

Sample Output 3

OK

Solution in Rust (1.42.0) (judge verdict: Wrong Answer)

use std::io::{self, Write};

fn main() {
    let mut stdout = io::stdout();
    let stdin = io::stdin();

    let mut input = String::new();
    stdin.read_line(&mut input).expect("failed to read line");

    let k: i32 = match input.trim().parse() {
        Ok(num) => num,
        Err(e) => {
            eprintln!("{:?}", e);
            std::process::exit(1);
        }
    };
    input.clear();
    stdin.read_line(&mut input).expect("failed to read line");

    let (a, b): (i32, i32) = {
        let v: Vec<i32> = input
            .trim()
            .split_whitespace()
            .map(|n| n.parse::<i32>().expect("failed to parse string"))
            .collect();
        (v[0], v[1])
    };

    let mut achieve = false;
    for i in a..=b {
        if k % i == 0 {
            achieve = true;
            break;
        }
    }

    if achieve {
        println!("OK");
    } else {
        println!("NG");
    }
    stdout.flush().unwrap();
}