#include <iostream>
#include <vector>
#include <stack>
using namespace std;

int main(){
  int m=2;
  int count[101];
  for(int i=1;i<=100;i++)
    count[i]=0;

  vector<int> list[101];

  int a,b;
  while(cin >> a >> b && a>0 && b>0){
    count[a]++; count[b]++;
    m=max(m,max(a,b));

    list[a].push_back(b);
    list[b].push_back(a);
  }

  bool f[101];
  for(int i=1;i<=m;i++) f[i]=false;

  stack<int> cur;
  cur.push(1);
  f[1]=true;
  while(!cur.empty()){
    bool flg=false;
    for(vector<int>::iterator it=list[cur.top()].begin();it!=list[cur.top()].end();it++){
      if(!f[*it]){
        f[*it]=true;
        cur.push(*it);
        flg=true;
        break;
      }
    }
    if(flg) continue;
    cur.pop();
  }

  bool flg=true;
  for(int i=1;i<=m;i++) flg=(flg && f[i]);

  flg=(flg && (count[a]%2==1) && (count[b]%2==1));
  for(int i=3;i<=m;i++) flg=(flg && (count[i]%2==0));

  if(flg) cout << "OK" << endl;
  else cout << "NG" << endl;

  return 0;  
}