#define _GLIBCXX_DEBUG

#include <bits/stdc++.h>

using namespace std;

// ????????????????????????????????????
class Euler {
#define MAX_V 101

private:
  const int INF = 1e9 + 10;
  struct Edge {
    int to;
    Edge(int to): to(to) { }
  };

  int V;
  vector<Edge> G[MAX_V];

public:

  Euler(int V): V(V) { 
    if (V >= MAX_V) {
      assert(false);
    }
  }

  void AddEdge(int from, int to) {
    G[from].push_back(Edge(to));
  }

  bool Solve(int s, int t) {
    if (!(G[s].size() % 2)) {
      return false;
    }
    if (!(G[t].size() % 2)) {
      return false;
    }

    for (int i = 0; i < V; i++) {
      if (i == s || i == t) {
        continue;
      }
      if (G[i].size() % 2) {
        return false;
      }
    }
    
    return true;
  }
};

int main() {
  Euler euler(100);
  while (true) {
    int a, b;
    if (cin.eof()) {
      break;
    }
    cin >> a >> b;
    

    if (a + b == 0) {
      if (euler.Solve(1, 2)) {
        cout << "OK" << endl;
      } else {
        cout << "NG" << endl;
      }
    } else {
      euler.AddEdge(a, b);
      euler.AddEdge(b, a);
    }    
    
  }
  
  return 0;
}