#include<stdio.h>
#include<string.h>


//ð·_Ì¼O(®)Æ»Ìð·_©çLÑé¹ÌîñðÂ\¢Ìðé¾B
typedef struct{
	int name;
	int miti;
}Kousa;

int main(){
	int a,b,i,j;
	Kousa c[100];
	
	
	//ÅÌüÍ
	while(~scanf("%d%d",&a,&b)){
		if(a==0 && b==0)break;
		i=0;
		
		//\¢ÌzñÌú»
		memset(c,0,sizeof(c));
		
		c[0].miti++;
		c[0].name=a;
		for(i=0;;i++){
			if(c[i].name==b || c[i].name==0){
				c[i].name=c[i].name!=0 ? c[i].name:b;
				++c[i].miti;
				break;
			}
		}
		
		while(scanf("%d%d",&a,&b)){
			if(a==0 && b==0)break;
			for(i=0;;i++){
				if(c[i].name==a || c[i].name==0){
					c[i].name=c[i].name!=0 ? c[i].name:a;
					++c[i].miti;
					break;
				}
			}
			for(i=0;;i++){
				if(c[i].name==b || c[i].name==0){
					c[i].name=c[i].name!=0 ? c[i].name:b;
					++c[i].miti;
					break;
				}
			}
			
		}

		a=0;
		for(i=0;i<100;i++){
//			if(c[i].name!=0)printf("%d %d %d\n",i,c[i].name,c[i].miti);
			if(c[i].name!=1 && c[i].name!=2 && c[i].miti%2==1){
				a=1;
			}
		}
		
		
		if(a==1){
			printf("NG\n");
		}else{
			printf("OK\n");
		}
	}
	return 0;
}