#include <stdio.h>
#include <iostream>
#include <string>
#include <algorithm>
#include <math.h>

using namespace std;

#define MAX_N 101

int route[MAX_N];

int main()
{
    int a,b=1;
    int n=0;
    bool flag=false;
   
    while (cin >> a && cin >> b)
    {
        route[a]++;//頂点 a の次数を増やす;
        route[b]++;//頂点 b の次数を増やす;
        n++;
        if (a == 0)
        {
            //始点から終点に一筆書き出来るか (*) を判定して出力
                //(*) 頂点番号 1 と 2 の字数が奇数,かつ,
                    //頂点番号 3 以上の頂点の次数が全て偶数
                if(route[1] % 2 == 1 && route[2] % 2 == 1)
                {
                    for(int i=3; i<=n; i++)
                    {
                        if(route[i]%2==1){flag=true;}
                    }
                    if(flag){cout << "NG" << endl;}
                    else{cout << "OK" << endl;}
                }
            //次のテストケースのために,全ての頂点の次数を 0 に戻す
            for(int i=0; i < MAX_N; i++){route[i]=0;}
            n=0; flag=false;
        }
    }
}