# -*- coding: utf-8 -*-

import bisect

import heapq

import math

import random

import sys

from collections import Counter, defaultdict, deque

from decimal import ROUND_CEILING, ROUND_HALF_UP, Decimal

from functools import lru_cache, reduce

from itertools import combinations, combinations_with_replacement, product, permutations

from operator import add, mul, sub



# sys.setrecursionlimit(100000)

input = sys.stdin.buffer.readline

INF = 2**62-1



def read_int():

    return int(input())





def read_int_n():

    return list(map(int, input().split()))





def read_float():

    return float(input())





def read_float_n():

    return list(map(float, input().split()))





def read_str():

    return input().strip()





def read_str_n():

    return list(map(str, input().split()))





def error_print(*args):

    print(*args, file=sys.stderr)





def mt(f):

    import time



    def wrap(*args, **kwargs):

        s = time.time()

        ret = f(*args, **kwargs)

        e = time.time()



        error_print(e - s, 'sec')

        return ret



    return wrap





@mt

def slv(K, A, B):

    ans = 0

    for i in range(100000):

        if A <= i*K <= B:

            return 'OK'

        if i * K > B:

            break

    return 'NG'





def main():

    K = read_int()

    A, B = read_int_n()

    print(slv(K, A, B))





if __name__ == '__main__':

    main()

# -*- coding: utf-8 -*-

INF = 2**62-1





def read_int():

    return int(eval(input()))





def read_int_n():

    return list(map(int, input().split()))





def slv(K, A, B):

    for i in range(INF):

        if A <= i*K <= B:

            return 'OK'

        if i * K > B:

            break

    return 'NG'





def main():

    K = read_int()

    A, B = read_int_n()

    print((slv(K, A, B)))





if __name__ == '__main__':

    main()

# -*- coding: utf-8 -*-
import bisect
import heapq
import math
import random
import sys
from collections import Counter, defaultdict, deque
from decimal import ROUND_CEILING, ROUND_HALF_UP, Decimal
from functools import lru_cache, reduce
from itertools import combinations, combinations_with_replacement, product, permutations
from operator import add, mul, sub

# sys.setrecursionlimit(100000)
input = sys.stdin.buffer.readline
INF = 2**62 - 1


def read_int():
    return int(input())


def read_int_n():
    return list(map(int, input().split()))


def read_float():
    return float(input())


def read_float_n():
    return list(map(float, input().split()))


def read_str():
    return input().strip()


def read_str_n():
    return list(map(str, input().split()))


def error_print(*args):
    print(*args, file=sys.stderr)


def mt(f):
    import time

    def wrap(*args, **kwargs):
        s = time.time()
        ret = f(*args, **kwargs)
        e = time.time()
        error_print(e - s, "sec")
        return ret

    return wrap


@mt
def slv(K, A, B):
    ans = 0
    for i in range(100000):
        if A <= i * K <= B:
            return "OK"
        if i * K > B:
            break
    return "NG"


def main():
    K = read_int()
    A, B = read_int_n()
    print(slv(K, A, B))


if __name__ == "__main__":
    main()

# -*- coding: utf-8 -*-
INF = 2**62 - 1


def read_int():
    return int(eval(input()))


def read_int_n():
    return list(map(int, input().split()))


def slv(K, A, B):
    for i in range(INF):
        if A <= i * K <= B:
            return "OK"
        if i * K > B:
            break
    return "NG"


def main():
    K = read_int()
    A, B = read_int_n()
    print((slv(K, A, B)))


if __name__ == "__main__":
    main()

-import bisect -import heapq -import math -import random -import sys -from collections import Counter, defaultdict, deque -from decimal import ROUND_CEILING, ROUND_HALF_UP, Decimal -from functools import lru_cache, reduce -from itertools import combinations, combinations_with_replacement, product, permutations -from operator import add, mul, sub - -# sys.setrecursionlimit(100000) -input = sys.stdin.buffer.readline -    return int(input()) +    return int(eval(input())) -def read_float(): -    return float(input()) - - -def read_float_n(): -    return list(map(float, input().split())) - - -def read_str(): -    return input().strip() - - -def read_str_n(): -    return list(map(str, input().split())) - - -def error_print(*args): -    print(*args, file=sys.stderr) - - -def mt(f): -    import time - -    def wrap(*args, **kwargs): -        s = time.time() -        ret = f(*args, **kwargs) -        e = time.time() -        error_print(e - s, "sec") -        return ret - -    return wrap - - -@mt -    ans = 0 -    for i in range(100000): +    for i in range(INF): -    print(slv(K, A, B)) +    print((slv(K, A, B)))