import java.util.Arrays;
import java.util.PriorityQueue;
import java.util.Scanner;
/**
* Created by rajanW(683281) on 03-Apr-15.
* at 1:12 PM
* Very easy Bipartite test
*/
class ClawDecomposition_11396 {
static int n;
static int g[][];
static int color[];
static boolean bfs(int u){
color[u]=1;
PriorityQueue<Integer> q = new PriorityQueue<Integer>();
q.add(u);
while(!q.isEmpty()){
int i = q.poll();
for(int j=0;j<n;j++){
if(g[i][j]==1){
if(color[j]==-1){color[j]=1-color[i];q.add(j);} //if not visited yet then color different
else if(color[j]==color[i]){return false;} // if same color then game over
}
}
}
return true;
}
static boolean bptest(){
for(int i=0;i<n;i++){
if(color[i]==-1) { // check for all connected components
if (!bfs(i)) {
return false;
}
}
}
return true;
}
Scanner sc
= new Scanner
(System.
in); int x,y,i,j,ans;
while(true){
n = sc.nextInt();
if(n==0){break;}
g = new int[n][n];
color = new int[n];
while(true){
x = sc.nextInt(); y = sc.nextInt();
if(x==y&&x==0){break;}
g[x-1][y-1]=g[y-1][x-1]=1;
}//graph is complete
if(bptest()){
}
else{System.
out.
println("NO");} }
}
}
aW1wb3J0IGphdmEudXRpbC5BcnJheXM7CmltcG9ydCBqYXZhLnV0aWwuUHJpb3JpdHlRdWV1ZTsKaW1wb3J0IGphdmEudXRpbC5TY2FubmVyOwoKLyoqCiAqIENyZWF0ZWQgYnkgcmFqYW5XKDY4MzI4MSkgb24gMDMtQXByLTE1LgogKiBhdCAxOjEyIFBNCiAqIFZlcnkgZWFzeSBCaXBhcnRpdGUgdGVzdAogKi8KY2xhc3MgQ2xhd0RlY29tcG9zaXRpb25fMTEzOTYgewoKICAgIHN0YXRpYyBpbnQgbjsKICAgIHN0YXRpYyBpbnQgZ1tdW107CiAgICBzdGF0aWMgaW50IGNvbG9yW107CgogICAgc3RhdGljIGJvb2xlYW4gYmZzKGludCB1KXsKICAgICAgICBjb2xvclt1XT0xOwogICAgICAgIFByaW9yaXR5UXVldWU8SW50ZWdlcj4gcSA9IG5ldyBQcmlvcml0eVF1ZXVlPEludGVnZXI+KCk7CiAgICAgICAgcS5hZGQodSk7CiAgICAgICAgd2hpbGUoIXEuaXNFbXB0eSgpKXsKICAgICAgICAgICAgaW50IGkgPSBxLnBvbGwoKTsKICAgICAgICAgICAgZm9yKGludCBqPTA7ajxuO2orKyl7CiAgICAgICAgICAgICAgICBpZihnW2ldW2pdPT0xKXsKICAgICAgICAgICAgICAgICAgICBpZihjb2xvcltqXT09LTEpe2NvbG9yW2pdPTEtY29sb3JbaV07cS5hZGQoaik7fQkvL2lmIG5vdCB2aXNpdGVkIHlldCB0aGVuIGNvbG9yIGRpZmZlcmVudAogICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoY29sb3Jbal09PWNvbG9yW2ldKXtyZXR1cm4gZmFsc2U7fQkvLyBpZiBzYW1lIGNvbG9yIHRoZW4gZ2FtZSBvdmVyCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9CgogICAgc3RhdGljIGJvb2xlYW4gYnB0ZXN0KCl7CiAgICAgICAgZm9yKGludCBpPTA7aTxuO2krKyl7CiAgICAgICAgICAgIGlmKGNvbG9yW2ldPT0tMSkgewkvLyBjaGVjayBmb3IgYWxsIGNvbm5lY3RlZCBjb21wb25lbnRzCiAgICAgICAgICAgICAgICBpZiAoIWJmcyhpKSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB0aHJvd3MgRXhjZXB0aW9uewogICAgICAgIFNjYW5uZXIgc2MgPSBuZXcgU2Nhbm5lcihTeXN0ZW0uaW4pOwogICAgICAgIGludCB4LHksaSxqLGFuczsKICAgICAgICB3aGlsZSh0cnVlKXsKICAgICAgICAgICAgbiA9IHNjLm5leHRJbnQoKTsKICAgICAgICAgICAgaWYobj09MCl7YnJlYWs7fQogICAgICAgICAgICBnID0gbmV3IGludFtuXVtuXTsKICAgICAgICAgICAgY29sb3IgPSBuZXcgaW50W25dOwogICAgICAgICAgICBBcnJheXMuZmlsbChjb2xvciwtMSk7CiAgICAgICAgICAgIHdoaWxlKHRydWUpewogICAgICAgICAgICAgICAgeCA9IHNjLm5leHRJbnQoKTsgeSA9IHNjLm5leHRJbnQoKTsKICAgICAgICAgICAgICAgIGlmKHg9PXkmJng9PTApe2JyZWFrO30KICAgICAgICAgICAgICAgIGdbeC0xXVt5LTFdPWdbeS0xXVt4LTFdPTE7CiAgICAgICAgICAgIH0vL2dyYXBoIGlzIGNvbXBsZXRlCiAgICAgICAgICAgIGlmKGJwdGVzdCgpKXsKICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiWUVTIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZXtTeXN0ZW0ub3V0LnByaW50bG4oIk5PIik7fQogICAgICAgIH0KICAgIH0KfQo=