import java.util.*;
import java.io.*;
import java.lang.*;
import java.math.*;
 
public class Main {

  static class Reader {

    final private int BUFFER_SIZE = 1 << 16; 
    private DataInputStream din; 
    private byte[] buffer; 
    private int bufferPointer, bytesRead; 

    public Reader() { 
      din = new DataInputStream(System.in); 
      buffer = new byte[BUFFER_SIZE]; 
      bufferPointer = bytesRead = 0; 
    } 

    public Reader(String file_name) throws IOException { 
      din = new DataInputStream(new FileInputStream(file_name)); 
      buffer = new byte[BUFFER_SIZE]; 
      bufferPointer = bytesRead = 0; 
    } 

    public String readLine() throws IOException { 
      byte[] buf = new byte[64]; // line length 
      int cnt = 0, c; 
      while ((c = read()) != -1) { 
        if (c == '\n') 
          break; 
        buf[cnt++] = (byte) c; 
      } 
      return new String(buf, 0, cnt); 
    } 

    public int nextInt() throws IOException { 
      int ret = 0; 
      byte c = read(); 
      while (c <= ' ') 
        c = read(); 
      boolean neg = (c == '-'); 
      if (neg) 
        c = read(); 
      do { 
        ret = ret * 10 + c - '0'; 
      } while ((c = read()) >= '0' && c <= '9'); 

      if (neg) 
        return -ret; 
      return ret; 
    } 

    public long nextLong() throws IOException { 
      long ret = 0; 
      byte c = read(); 
      while (c <= ' ') 
        c = read(); 
      boolean neg = (c == '-'); 
      if (neg) 
        c = read(); 
      do { 
        ret = ret * 10 + c - '0'; 
      } 
      while ((c = read()) >= '0' && c <= '9'); 
      if (neg) 
        return -ret; 
      return ret; 
    } 

    public double nextDouble() throws IOException { 
      double ret = 0, div = 1; 
      byte c = read(); 
      while (c <= ' ') 
        c = read(); 
      boolean neg = (c == '-'); 
      if (neg) 
        c = read(); 

      do { 
        ret = ret * 10 + c - '0'; 
      } 
      while ((c = read()) >= '0' && c <= '9'); 

      if (c == '.') { 
        while ((c = read()) >= '0' && c <= '9') { 
          ret += (c - '0') / (div *= 10); 
        } 
      } 

      if (neg) 
        return -ret; 
      return ret; 
    } 

    private void fillBuffer() throws IOException { 
      bytesRead = din.read(buffer, bufferPointer = 0, BUFFER_SIZE); 
      if (bytesRead == -1) 
        buffer[0] = -1; 
    } 

    private byte read() throws IOException { 
      if (bufferPointer == bytesRead) 
        fillBuffer(); 
      return buffer[bufferPointer++]; 
    } 

    public void close() throws IOException { 
      if (din == null) 
        return; 
      din.close(); 
    } 
  }

 
  public static void main(String args[]) throws IOException {
    // try {
    //   FileOutputStream output = new FileOutputStream("temp.out");
    //   PrintStream out = new PrintStream(output);
    //   //Diverting the output stream into file "temp.out".Comment the below line to use console
    //   System.setOut(out);
  
    //   InputStream input = new FileInputStream("temp.in");
    //   //Diverting the input stream into file "temp.in".Comment the below line to use console
    //   System.setIn(input);
    
    // } catch (FileNotFoundException e) {
    //   e.printStackTrace();
    // }
  
    // Scanner sc = new Scanner(System.in);
    Reader sc = new Reader();
    // BufferedReader sc = new BufferedReader(new InputStreamReader(System.in));
    PrintWriter wr = new PrintWriter(System.out);

    // int t = 1;
    // t = sc.nextInt();    //Comment this line if there is single test case
    
    // while((t--) != 0) {




    // }



    int k = sc.nextInt();
    int a = sc.nextInt();
    int b = sc.nextInt();


    boolean ans = check(k, a, b);
    if(ans) {
        wr.println("OK");
    } else {
      wr.println("NG");
    }

    wr.flush();
    wr.close();
  }

  public static boolean check(int k, int a, int b) {
    
    for(int i = a; i <= b; i++) {
      if(i % k == 0)
        return true;
    }
    return false;
  }
} import java.util.*; util.* java import java.io.*; io.* java import java.lang.*; lang.* java import java.math.*; math.* java public class Main {

  static class Reader {

    final private int BUFFER_SIZE = 1 << 16; 
    private DataInputStream din; 
    private byte[] buffer; 
    private int bufferPointer, bytesRead; 

    public Reader() { 
      din = new DataInputStream(System.in); 
      buffer = new byte[BUFFER_SIZE]; 
      bufferPointer = bytesRead = 0; 
    } 

    public Reader(String file_name) throws IOException { 
      din = new DataInputStream(new FileInputStream(file_name)); 
      buffer = new byte[BUFFER_SIZE]; 
      bufferPointer = bytesRead = 0; 
    } 

    public String readLine() throws IOException { 
      byte[] buf = new byte[64]; // line length 
      int cnt = 0, c; 
      while ((c = read()) != -1) { 
        if (c == '\n') 
          break; 
        buf[cnt++] = (byte) c; 
      } 
      return new String(buf, 0, cnt); 
    } 

    public int nextInt() throws IOException { 
      int ret = 0; 
      byte c = read(); 
      while (c <= ' ') 
        c = read(); 
      boolean neg = (c == '-'); 
      if (neg) 
        c = read(); 
      do { 
        ret = ret * 10 + c - '0'; 
      } while ((c = read()) >= '0' && c <= '9'); 

      if (neg) 
        return -ret; 
      return ret; 
    } 

    public long nextLong() throws IOException { 
      long ret = 0; 
      byte c = read(); 
      while (c <= ' ') 
        c = read(); 
      boolean neg = (c == '-'); 
      if (neg) 
        c = read(); 
      do { 
        ret = ret * 10 + c - '0'; 
      } 
      while ((c = read()) >= '0' && c <= '9'); 
      if (neg) 
        return -ret; 
      return ret; 
    } 

    public double nextDouble() throws IOException { 
      double ret = 0, div = 1; 
      byte c = read(); 
      while (c <= ' ') 
        c = read(); 
      boolean neg = (c == '-'); 
      if (neg) 
        c = read(); 

      do { 
        ret = ret * 10 + c - '0'; 
      } 
      while ((c = read()) >= '0' && c <= '9'); 

      if (c == '.') { 
        while ((c = read()) >= '0' && c <= '9') { 
          ret += (c - '0') / (div *= 10); 
        } 
      } 

      if (neg) 
        return -ret; 
      return ret; 
    } 

    private void fillBuffer() throws IOException { 
      bytesRead = din.read(buffer, bufferPointer = 0, BUFFER_SIZE); 
      if (bytesRead == -1) 
        buffer[0] = -1; 
    } 

    private byte read() throws IOException { 
      if (bufferPointer == bytesRead) 
        fillBuffer(); 
      return buffer[bufferPointer++]; 
    } 

    public void close() throws IOException { 
      if (din == null) 
        return; 
      din.close(); 
    } 
  }

 
  public static void main(String args[]) throws IOException {
    // try {
    //   FileOutputStream output = new FileOutputStream("temp.out");
    //   PrintStream out = new PrintStream(output);
    //   //Diverting the output stream into file "temp.out".Comment the below line to use console
    //   System.setOut(out);
  
    //   InputStream input = new FileInputStream("temp.in");
    //   //Diverting the input stream into file "temp.in".Comment the below line to use console
    //   System.setIn(input);
    
    // } catch (FileNotFoundException e) {
    //   e.printStackTrace();
    // }
  
    // Scanner sc = new Scanner(System.in);
    Reader sc = new Reader();
    // BufferedReader sc = new BufferedReader(new InputStreamReader(System.in));
    PrintWriter wr = new PrintWriter(System.out);

    // int t = 1;
    // t = sc.nextInt();    //Comment this line if there is single test case
    
    // while((t--) != 0) {




    // }



    int k = sc.nextInt();
    int a = sc.nextInt();
    int b = sc.nextInt();


    boolean ans = check(k, a, b);
    if(ans) {
        wr.println("OK");
    } else {
      wr.println("NG");
    }

    wr.flush();
    wr.close();
  }

  public static boolean check(int k, int a, int b) {
    
    for(int i = a; i <= b; i++) {
      if(i % k == 0)
        return true;
    }
    return false;
  }
} Main public static void main(String args[]) throws IOException {
    // try {
    //   FileOutputStream output = new FileOutputStream("temp.out");
    //   PrintStream out = new PrintStream(output);
    //   //Diverting the output stream into file "temp.out".Comment the below line to use console
    //   System.setOut(out);
  
    //   InputStream input = new FileInputStream("temp.in");
    //   //Diverting the input stream into file "temp.in".Comment the below line to use console
    //   System.setIn(input);
    
    // } catch (FileNotFoundException e) {
    //   e.printStackTrace();
    // }
  
    // Scanner sc = new Scanner(System.in);
    Reader sc = new Reader();
    // BufferedReader sc = new BufferedReader(new InputStreamReader(System.in));
    PrintWriter wr = new PrintWriter(System.out);

    // int t = 1;
    // t = sc.nextInt();    //Comment this line if there is single test case
    
    // while((t--) != 0) {




    // }



    int k = sc.nextInt();
    int a = sc.nextInt();
    int b = sc.nextInt();


    boolean ans = check(k, a, b);
    if(ans) {
        wr.println("OK");
    } else {
      wr.println("NG");
    }

    wr.flush();
    wr.close();
  } main {
    // try {
    //   FileOutputStream output = new FileOutputStream("temp.out");
    //   PrintStream out = new PrintStream(output);
    //   //Diverting the output stream into file "temp.out".Comment the below line to use console
    //   System.setOut(out);
  
    //   InputStream input = new FileInputStream("temp.in");
    //   //Diverting the input stream into file "temp.in".Comment the below line to use console
    //   System.setIn(input);
    
    // } catch (FileNotFoundException e) {
    //   e.printStackTrace();
    // }
  
    // Scanner sc = new Scanner(System.in);
    Reader sc = new Reader();
    // BufferedReader sc = new BufferedReader(new InputStreamReader(System.in));
    PrintWriter wr = new PrintWriter(System.out);

    // int t = 1;
    // t = sc.nextInt();    //Comment this line if there is single test case
    
    // while((t--) != 0) {




    // }



    int k = sc.nextInt();
    int a = sc.nextInt();
    int b = sc.nextInt();


    boolean ans = check(k, a, b);
    if(ans) {
        wr.println("OK");
    } else {
      wr.println("NG");
    }

    wr.flush();
    wr.close();
  } Reader sc = new Reader(); sc new Reader() PrintWriter wr = new PrintWriter(System.out); wr new PrintWriter(System.out) int k = sc.nextInt(); k sc.nextInt() sc.nextInt sc int a = sc.nextInt(); a sc.nextInt() sc.nextInt sc int b = sc.nextInt(); b sc.nextInt() sc.nextInt sc boolean ans = check(k, a, b); ans check(k, a, b) check k a b if(ans) {
        wr.println("OK");
    } else {
      wr.println("NG");
    } ans {
        wr.println("OK");
    } wr.println("OK") wr.println wr "OK" {
      wr.println("NG");
    } wr.println("NG") wr.println wr "NG" wr.flush() wr.flush wr wr.close() wr.close wr String args[] args public static boolean check(int k, int a, int b) {
    
    for(int i = a; i <= b; i++) {
      if(i % k == 0)
        return true;
    }
    return false;
  } check {
    
    for(int i = a; i <= b; i++) {
      if(i % k == 0)
        return true;
    }
    return false;
  } for(int i = a; i <= b; i++) {
      if(i % k == 0)
        return true;
    } int i = a; int i = a; i a i <= b i b i++ i++ i {
      if(i % k == 0)
        return true;
    } {
      if(i % k == 0)
        return true;
    } if(i % k == 0)
        return true; i % k == 0 i % k i k 0 return true; true return false; false int k k int a a int b b static class Reader {

    final private int BUFFER_SIZE = 1 << 16; 
    private DataInputStream din; 
    private byte[] buffer; 
    private int bufferPointer, bytesRead; 

    public Reader() { 
      din = new DataInputStream(System.in); 
      buffer = new byte[BUFFER_SIZE]; 
      bufferPointer = bytesRead = 0; 
    } 

    public Reader(String file_name) throws IOException { 
      din = new DataInputStream(new FileInputStream(file_name)); 
      buffer = new byte[BUFFER_SIZE]; 
      bufferPointer = bytesRead = 0; 
    } 

    public String readLine() throws IOException { 
      byte[] buf = new byte[64]; // line length 
      int cnt = 0, c; 
      while ((c = read()) != -1) { 
        if (c == '\n') 
          break; 
        buf[cnt++] = (byte) c; 
      } 
      return new String(buf, 0, cnt); 
    } 

    public int nextInt() throws IOException { 
      int ret = 0; 
      byte c = read(); 
      while (c <= ' ') 
        c = read(); 
      boolean neg = (c == '-'); 
      if (neg) 
        c = read(); 
      do { 
        ret = ret * 10 + c - '0'; 
      } while ((c = read()) >= '0' && c <= '9'); 

      if (neg) 
        return -ret; 
      return ret; 
    } 

    public long nextLong() throws IOException { 
      long ret = 0; 
      byte c = read(); 
      while (c <= ' ') 
        c = read(); 
      boolean neg = (c == '-'); 
      if (neg) 
        c = read(); 
      do { 
        ret = ret * 10 + c - '0'; 
      } 
      while ((c = read()) >= '0' && c <= '9'); 
      if (neg) 
        return -ret; 
      return ret; 
    } 

    public double nextDouble() throws IOException { 
      double ret = 0, div = 1; 
      byte c = read(); 
      while (c <= ' ') 
        c = read(); 
      boolean neg = (c == '-'); 
      if (neg) 
        c = read(); 

      do { 
        ret = ret * 10 + c - '0'; 
      } 
      while ((c = read()) >= '0' && c <= '9'); 

      if (c == '.') { 
        while ((c = read()) >= '0' && c <= '9') { 
          ret += (c - '0') / (div *= 10); 
        } 
      } 

      if (neg) 
        return -ret; 
      return ret; 
    } 

    private void fillBuffer() throws IOException { 
      bytesRead = din.read(buffer, bufferPointer = 0, BUFFER_SIZE); 
      if (bytesRead == -1) 
        buffer[0] = -1; 
    } 

    private byte read() throws IOException { 
      if (bufferPointer == bytesRead) 
        fillBuffer(); 
      return buffer[bufferPointer++]; 
    } 

    public void close() throws IOException { 
      if (din == null) 
        return; 
      din.close(); 
    } 
  } Reader final private int BUFFER_SIZE = 1 << 16; BUFFER_SIZE 1 << 16 1 16 private DataInputStream din; din private byte[] buffer; buffer private int bufferPointer bufferPointer bytesRead; bytesRead public Reader() { 
      din = new DataInputStream(System.in); 
      buffer = new byte[BUFFER_SIZE]; 
      bufferPointer = bytesRead = 0; 
    } Reader { 
      din = new DataInputStream(System.in); 
      buffer = new byte[BUFFER_SIZE]; 
      bufferPointer = bytesRead = 0; 
    } din = new DataInputStream(System.in) din new DataInputStream(System.in) buffer = new byte[BUFFER_SIZE] buffer new byte[BUFFER_SIZE] BUFFER_SIZE bufferPointer = bytesRead = 0 bufferPointer bytesRead = 0 bytesRead 0 public Reader(String file_name) throws IOException { 
      din = new DataInputStream(new FileInputStream(file_name)); 
      buffer = new byte[BUFFER_SIZE]; 
      bufferPointer = bytesRead = 0; 
    } Reader { 
      din = new DataInputStream(new FileInputStream(file_name)); 
      buffer = new byte[BUFFER_SIZE]; 
      bufferPointer = bytesRead = 0; 
    } din = new DataInputStream(new FileInputStream(file_name)) din new DataInputStream(new FileInputStream(file_name)) buffer = new byte[BUFFER_SIZE] buffer new byte[BUFFER_SIZE] BUFFER_SIZE bufferPointer = bytesRead = 0 bufferPointer bytesRead = 0 bytesRead 0 String file_name file_name public String readLine() throws IOException { 
      byte[] buf = new byte[64]; // line length 
      int cnt = 0, c; 
      while ((c = read()) != -1) { 
        if (c == '\n') 
          break; 
        buf[cnt++] = (byte) c; 
      } 
      return new String(buf, 0, cnt); 
    } readLine { 
      byte[] buf = new byte[64]; // line length 
      int cnt = 0, c; 
      while ((c = read()) != -1) { 
        if (c == '\n') 
          break; 
        buf[cnt++] = (byte) c; 
      } 
      return new String(buf, 0, cnt); 
    } byte[] buf = new byte[64]; buf new byte[64] 64 int cnt = 0 cnt 0 c; c while ((c = read()) != -1) { 
        if (c == '\n') 
          break; 
        buf[cnt++] = (byte) c; 
      } (c = read()) != -1 (c = read()) c read() read -1 1 { 
        if (c == '\n') 
          break; 
        buf[cnt++] = (byte) c; 
      } if (c == '\n') 
          break; c == '\n' c '\n' break; buf[cnt++] = (byte) c buf[cnt++] buf cnt++ cnt (byte) c return new String(buf, 0, cnt); new String(buf, 0, cnt) public int nextInt() throws IOException { 
      int ret = 0; 
      byte c = read(); 
      while (c <= ' ') 
        c = read(); 
      boolean neg = (c == '-'); 
      if (neg) 
        c = read(); 
      do { 
        ret = ret * 10 + c - '0'; 
      } while ((c = read()) >= '0' && c <= '9'); 

      if (neg) 
        return -ret; 
      return ret; 
    } nextInt { 
      int ret = 0; 
      byte c = read(); 
      while (c <= ' ') 
        c = read(); 
      boolean neg = (c == '-'); 
      if (neg) 
        c = read(); 
      do { 
        ret = ret * 10 + c - '0'; 
      } while ((c = read()) >= '0' && c <= '9'); 

      if (neg) 
        return -ret; 
      return ret; 
    } int ret = 0; ret 0 byte c = read(); c read() read while (c <= ' ') 
        c = read(); c <= ' ' c ' ' c = read() c read() read boolean neg = (c == '-'); neg (c == '-') c '-' if (neg) 
        c = read(); neg c = read() c read() read do { 
        ret = ret * 10 + c - '0'; 
      } while ((c = read()) >= '0' && c <= '9'); (c = read()) >= '0' && c <= '9' (c = read()) >= '0' (c = read()) c read() read '0' c <= '9' c '9' { 
        ret = ret * 10 + c - '0'; 
      } ret = ret * 10 + c - '0' ret ret * 10 + c - '0' ret * 10 + c ret * 10 ret 10 c '0' if (neg) 
        return -ret; neg return -ret; -ret ret return ret; ret public long nextLong() throws IOException { 
      long ret = 0; 
      byte c = read(); 
      while (c <= ' ') 
        c = read(); 
      boolean neg = (c == '-'); 
      if (neg) 
        c = read(); 
      do { 
        ret = ret * 10 + c - '0'; 
      } 
      while ((c = read()) >= '0' && c <= '9'); 
      if (neg) 
        return -ret; 
      return ret; 
    } nextLong { 
      long ret = 0; 
      byte c = read(); 
      while (c <= ' ') 
        c = read(); 
      boolean neg = (c == '-'); 
      if (neg) 
        c = read(); 
      do { 
        ret = ret * 10 + c - '0'; 
      } 
      while ((c = read()) >= '0' && c <= '9'); 
      if (neg) 
        return -ret; 
      return ret; 
    } long ret = 0; ret 0 byte c = read(); c read() read while (c <= ' ') 
        c = read(); c <= ' ' c ' ' c = read() c read() read boolean neg = (c == '-'); neg (c == '-') c '-' if (neg) 
        c = read(); neg c = read() c read() read do { 
        ret = ret * 10 + c - '0'; 
      } 
      while ((c = read()) >= '0' && c <= '9'); (c = read()) >= '0' && c <= '9' (c = read()) >= '0' (c = read()) c read() read '0' c <= '9' c '9' { 
        ret = ret * 10 + c - '0'; 
      } ret = ret * 10 + c - '0' ret ret * 10 + c - '0' ret * 10 + c ret * 10 ret 10 c '0' if (neg) 
        return -ret; neg return -ret; -ret ret return ret; ret public double nextDouble() throws IOException { 
      double ret = 0, div = 1; 
      byte c = read(); 
      while (c <= ' ') 
        c = read(); 
      boolean neg = (c == '-'); 
      if (neg) 
        c = read(); 

      do { 
        ret = ret * 10 + c - '0'; 
      } 
      while ((c = read()) >= '0' && c <= '9'); 

      if (c == '.') { 
        while ((c = read()) >= '0' && c <= '9') { 
          ret += (c - '0') / (div *= 10); 
        } 
      } 

      if (neg) 
        return -ret; 
      return ret; 
    } nextDouble { 
      double ret = 0, div = 1; 
      byte c = read(); 
      while (c <= ' ') 
        c = read(); 
      boolean neg = (c == '-'); 
      if (neg) 
        c = read(); 

      do { 
        ret = ret * 10 + c - '0'; 
      } 
      while ((c = read()) >= '0' && c <= '9'); 

      if (c == '.') { 
        while ((c = read()) >= '0' && c <= '9') { 
          ret += (c - '0') / (div *= 10); 
        } 
      } 

      if (neg) 
        return -ret; 
      return ret; 
    } double ret = 0 ret 0 div = 1; div 1 byte c = read(); c read() read while (c <= ' ') 
        c = read(); c <= ' ' c ' ' c = read() c read() read boolean neg = (c == '-'); neg (c == '-') c '-' if (neg) 
        c = read(); neg c = read() c read() read do { 
        ret = ret * 10 + c - '0'; 
      } 
      while ((c = read()) >= '0' && c <= '9'); (c = read()) >= '0' && c <= '9' (c = read()) >= '0' (c = read()) c read() read '0' c <= '9' c '9' { 
        ret = ret * 10 + c - '0'; 
      } ret = ret * 10 + c - '0' ret ret * 10 + c - '0' ret * 10 + c ret * 10 ret 10 c '0' if (c == '.') { 
        while ((c = read()) >= '0' && c <= '9') { 
          ret += (c - '0') / (div *= 10); 
        } 
      } c == '.' c '.' { 
        while ((c = read()) >= '0' && c <= '9') { 
          ret += (c - '0') / (div *= 10); 
        } 
      } while ((c = read()) >= '0' && c <= '9') { 
          ret += (c - '0') / (div *= 10); 
        } (c = read()) >= '0' && c <= '9' (c = read()) >= '0' (c = read()) c read() read '0' c <= '9' c '9' { 
          ret += (c - '0') / (div *= 10); 
        } ret += (c - '0') / (div *= 10) ret (c - '0') / (div *= 10) (c - '0') c '0' (div *= 10) div 10 if (neg) 
        return -ret; neg return -ret; -ret ret return ret; ret private void fillBuffer() throws IOException { 
      bytesRead = din.read(buffer, bufferPointer = 0, BUFFER_SIZE); 
      if (bytesRead == -1) 
        buffer[0] = -1; 
    } fillBuffer { 
      bytesRead = din.read(buffer, bufferPointer = 0, BUFFER_SIZE); 
      if (bytesRead == -1) 
        buffer[0] = -1; 
    } bytesRead = din.read(buffer, bufferPointer = 0, BUFFER_SIZE) bytesRead din.read(buffer, bufferPointer = 0, BUFFER_SIZE) din.read din buffer bufferPointer = 0 bufferPointer 0 BUFFER_SIZE if (bytesRead == -1) 
        buffer[0] = -1; bytesRead == -1 bytesRead -1 1 buffer[0] = -1 buffer[0] buffer 0 -1 1 private byte read() throws IOException { 
      if (bufferPointer == bytesRead) 
        fillBuffer(); 
      return buffer[bufferPointer++]; 
    } read { 
      if (bufferPointer == bytesRead) 
        fillBuffer(); 
      return buffer[bufferPointer++]; 
    } if (bufferPointer == bytesRead) 
        fillBuffer(); bufferPointer == bytesRead bufferPointer bytesRead fillBuffer() fillBuffer return buffer[bufferPointer++]; buffer[bufferPointer++] buffer bufferPointer++ bufferPointer public void close() throws IOException { 
      if (din == null) 
        return; 
      din.close(); 
    } close { 
      if (din == null) 
        return; 
      din.close(); 
    } if (din == null) 
        return; din == null din null return; din.close() din.close din public class Main {

  static class Reader {

    final private int BUFFER_SIZE = 1 << 16; 
    private DataInputStream din; 
    private byte[] buffer; 
    private int bufferPointer, bytesRead; 

    public Reader() { 
      din = new DataInputStream(System.in); 
      buffer = new byte[BUFFER_SIZE]; 
      bufferPointer = bytesRead = 0; 
    } 

    public Reader(String file_name) throws IOException { 
      din = new DataInputStream(new FileInputStream(file_name)); 
      buffer = new byte[BUFFER_SIZE]; 
      bufferPointer = bytesRead = 0; 
    } 

    public String readLine() throws IOException { 
      byte[] buf = new byte[64]; // line length 
      int cnt = 0, c; 
      while ((c = read()) != -1) { 
        if (c == '\n') 
          break; 
        buf[cnt++] = (byte) c; 
      } 
      return new String(buf, 0, cnt); 
    } 

    public int nextInt() throws IOException { 
      int ret = 0; 
      byte c = read(); 
      while (c <= ' ') 
        c = read(); 
      boolean neg = (c == '-'); 
      if (neg) 
        c = read(); 
      do { 
        ret = ret * 10 + c - '0'; 
      } while ((c = read()) >= '0' && c <= '9'); 

      if (neg) 
        return -ret; 
      return ret; 
    } 

    public long nextLong() throws IOException { 
      long ret = 0; 
      byte c = read(); 
      while (c <= ' ') 
        c = read(); 
      boolean neg = (c == '-'); 
      if (neg) 
        c = read(); 
      do { 
        ret = ret * 10 + c - '0'; 
      } 
      while ((c = read()) >= '0' && c <= '9'); 
      if (neg) 
        return -ret; 
      return ret; 
    } 

    public double nextDouble() throws IOException { 
      double ret = 0, div = 1; 
      byte c = read(); 
      while (c <= ' ') 
        c = read(); 
      boolean neg = (c == '-'); 
      if (neg) 
        c = read(); 

      do { 
        ret = ret * 10 + c - '0'; 
      } 
      while ((c = read()) >= '0' && c <= '9'); 

      if (c == '.') { 
        while ((c = read()) >= '0' && c <= '9') { 
          ret += (c - '0') / (div *= 10); 
        } 
      } 

      if (neg) 
        return -ret; 
      return ret; 
    } 

    private void fillBuffer() throws IOException { 
      bytesRead = din.read(buffer, bufferPointer = 0, BUFFER_SIZE); 
      if (bytesRead == -1) 
        buffer[0] = -1; 
    } 

    private byte read() throws IOException { 
      if (bufferPointer == bytesRead) 
        fillBuffer(); 
      return buffer[bufferPointer++]; 
    } 

    public void close() throws IOException { 
      if (din == null) 
        return; 
      din.close(); 
    } 
  }

 
  public static void main(String args[]) throws IOException {
    // try {
    //   FileOutputStream output = new FileOutputStream("temp.out");
    //   PrintStream out = new PrintStream(output);
    //   //Diverting the output stream into file "temp.out".Comment the below line to use console
    //   System.setOut(out);
  
    //   InputStream input = new FileInputStream("temp.in");
    //   //Diverting the input stream into file "temp.in".Comment the below line to use console
    //   System.setIn(input);
    
    // } catch (FileNotFoundException e) {
    //   e.printStackTrace();
    // }
  
    // Scanner sc = new Scanner(System.in);
    Reader sc = new Reader();
    // BufferedReader sc = new BufferedReader(new InputStreamReader(System.in));
    PrintWriter wr = new PrintWriter(System.out);

    // int t = 1;
    // t = sc.nextInt();    //Comment this line if there is single test case
    
    // while((t--) != 0) {




    // }



    int k = sc.nextInt();
    int a = sc.nextInt();
    int b = sc.nextInt();


    boolean ans = check(k, a, b);
    if(ans) {
        wr.println("OK");
    } else {
      wr.println("NG");
    }

    wr.flush();
    wr.close();
  }

  public static boolean check(int k, int a, int b) {
    
    for(int i = a; i <= b; i++) {
      if(i % k == 0)
        return true;
    }
    return false;
  }
} public class Main {

  static class Reader {

    final private int BUFFER_SIZE = 1 << 16; 
    private DataInputStream din; 
    private byte[] buffer; 
    private int bufferPointer, bytesRead; 

    public Reader() { 
      din = new DataInputStream(System.in); 
      buffer = new byte[BUFFER_SIZE]; 
      bufferPointer = bytesRead = 0; 
    } 

    public Reader(String file_name) throws IOException { 
      din = new DataInputStream(new FileInputStream(file_name)); 
      buffer = new byte[BUFFER_SIZE]; 
      bufferPointer = bytesRead = 0; 
    } 

    public String readLine() throws IOException { 
      byte[] buf = new byte[64]; // line length 
      int cnt = 0, c; 
      while ((c = read()) != -1) { 
        if (c == '\n') 
          break; 
        buf[cnt++] = (byte) c; 
      } 
      return new String(buf, 0, cnt); 
    } 

    public int nextInt() throws IOException { 
      int ret = 0; 
      byte c = read(); 
      while (c <= ' ') 
        c = read(); 
      boolean neg = (c == '-'); 
      if (neg) 
        c = read(); 
      do { 
        ret = ret * 10 + c - '0'; 
      } while ((c = read()) >= '0' && c <= '9'); 

      if (neg) 
        return -ret; 
      return ret; 
    } 

    public long nextLong() throws IOException { 
      long ret = 0; 
      byte c = read(); 
      while (c <= ' ') 
        c = read(); 
      boolean neg = (c == '-'); 
      if (neg) 
        c = read(); 
      do { 
        ret = ret * 10 + c - '0'; 
      } 
      while ((c = read()) >= '0' && c <= '9'); 
      if (neg) 
        return -ret; 
      return ret; 
    } 

    public double nextDouble() throws IOException { 
      double ret = 0, div = 1; 
      byte c = read(); 
      while (c <= ' ') 
        c = read(); 
      boolean neg = (c == '-'); 
      if (neg) 
        c = read(); 

      do { 
        ret = ret * 10 + c - '0'; 
      } 
      while ((c = read()) >= '0' && c <= '9'); 

      if (c == '.') { 
        while ((c = read()) >= '0' && c <= '9') { 
          ret += (c - '0') / (div *= 10); 
        } 
      } 

      if (neg) 
        return -ret; 
      return ret; 
    } 

    private void fillBuffer() throws IOException { 
      bytesRead = din.read(buffer, bufferPointer = 0, BUFFER_SIZE); 
      if (bytesRead == -1) 
        buffer[0] = -1; 
    } 

    private byte read() throws IOException { 
      if (bufferPointer == bytesRead) 
        fillBuffer(); 
      return buffer[bufferPointer++]; 
    } 

    public void close() throws IOException { 
      if (din == null) 
        return; 
      din.close(); 
    } 
  }

 
  public static void main(String args[]) throws IOException {
    // try {
    //   FileOutputStream output = new FileOutputStream("temp.out");
    //   PrintStream out = new PrintStream(output);
    //   //Diverting the output stream into file "temp.out".Comment the below line to use console
    //   System.setOut(out);
  
    //   InputStream input = new FileInputStream("temp.in");
    //   //Diverting the input stream into file "temp.in".Comment the below line to use console
    //   System.setIn(input);
    
    // } catch (FileNotFoundException e) {
    //   e.printStackTrace();
    // }
  
    // Scanner sc = new Scanner(System.in);
    Reader sc = new Reader();
    // BufferedReader sc = new BufferedReader(new InputStreamReader(System.in));
    PrintWriter wr = new PrintWriter(System.out);

    // int t = 1;
    // t = sc.nextInt();    //Comment this line if there is single test case
    
    // while((t--) != 0) {




    // }



    int k = sc.nextInt();
    int a = sc.nextInt();
    int b = sc.nextInt();


    boolean ans = check(k, a, b);
    if(ans) {
        wr.println("OK");
    } else {
      wr.println("NG");
    }

    wr.flush();
    wr.close();
  }

  public static boolean check(int k, int a, int b) {
    
    for(int i = a; i <= b; i++) {
      if(i % k == 0)
        return true;
    }
    return false;
  }
} Main
import java.util.*;
import java.io.*;
import java.lang.*;
import java.math.*;
 
public class Main {

  static class Reader {

    final private int BUFFER_SIZE = 1 << 16; 
    private DataInputStream din; 
    private byte[] buffer; 
    private int bufferPointer, bytesRead; 

    public Reader() { 
      din = new DataInputStream(System.in); 
      buffer = new byte[BUFFER_SIZE]; 
      bufferPointer = bytesRead = 0; 
    } 

    public Reader(String file_name) throws IOException { 
      din = new DataInputStream(new FileInputStream(file_name)); 
      buffer = new byte[BUFFER_SIZE]; 
      bufferPointer = bytesRead = 0; 
    } 

    public String readLine() throws IOException { 
      byte[] buf = new byte[64]; // line length 
      int cnt = 0, c; 
      while ((c = read()) != -1) { 
        if (c == '\n') 
          break; 
        buf[cnt++] = (byte) c; 
      } 
      return new String(buf, 0, cnt); 
    } 

    public int nextInt() throws IOException { 
      int ret = 0; 
      byte c = read(); 
      while (c <= ' ') 
        c = read(); 
      boolean neg = (c == '-'); 
      if (neg) 
        c = read(); 
      do { 
        ret = ret * 10 + c - '0'; 
      } while ((c = read()) >= '0' && c <= '9'); 

      if (neg) 
        return -ret; 
      return ret; 
    } 

    public long nextLong() throws IOException { 
      long ret = 0; 
      byte c = read(); 
      while (c <= ' ') 
        c = read(); 
      boolean neg = (c == '-'); 
      if (neg) 
        c = read(); 
      do { 
        ret = ret * 10 + c - '0'; 
      } 
      while ((c = read()) >= '0' && c <= '9'); 
      if (neg) 
        return -ret; 
      return ret; 
    } 

    public double nextDouble() throws IOException { 
      double ret = 0, div = 1; 
      byte c = read(); 
      while (c <= ' ') 
        c = read(); 
      boolean neg = (c == '-'); 
      if (neg) 
        c = read(); 

      do { 
        ret = ret * 10 + c - '0'; 
      } 
      while ((c = read()) >= '0' && c <= '9'); 

      if (c == '.') { 
        while ((c = read()) >= '0' && c <= '9') { 
          ret += (c - '0') / (div *= 10); 
        } 
      } 

      if (neg) 
        return -ret; 
      return ret; 
    } 

    private void fillBuffer() throws IOException { 
      bytesRead = din.read(buffer, bufferPointer = 0, BUFFER_SIZE); 
      if (bytesRead == -1) 
        buffer[0] = -1; 
    } 

    private byte read() throws IOException { 
      if (bufferPointer == bytesRead) 
        fillBuffer(); 
      return buffer[bufferPointer++]; 
    } 

    public void close() throws IOException { 
      if (din == null) 
        return; 
      din.close(); 
    } 
  }

 
  public static void main(String args[]) throws IOException {
    // try {
    //   FileOutputStream output = new FileOutputStream("temp.out");
    //   PrintStream out = new PrintStream(output);
    //   //Diverting the output stream into file "temp.out".Comment the below line to use console
    //   System.setOut(out);
  
    //   InputStream input = new FileInputStream("temp.in");
    //   //Diverting the input stream into file "temp.in".Comment the below line to use console
    //   System.setIn(input);
    
    // } catch (FileNotFoundException e) {
    //   e.printStackTrace();
    // }
  
    // Scanner sc = new Scanner(System.in);
    Reader sc = new Reader();
    // BufferedReader sc = new BufferedReader(new InputStreamReader(System.in));
    PrintWriter wr = new PrintWriter(System.out);

    // int t = 1;
    // t = sc.nextInt();    //Comment this line if there is single test case
    
    // while((t--) != 0) {




    // }



    int k = sc.nextInt();
    int a = sc.nextInt();
    int b = sc.nextInt();


    boolean ans = check(k, a, b);
    if(ans) {
        wr.println("OK");
    } else {
      wr.println("NG");
    }

    wr.flush();
    wr.close();
  }

  public static boolean check(int k, int a, int b) {
    
    for(int i = a; i <= b; i++) {
      if(i % k == 0)
        return true;
    }
    return false;
  }
}