#include<stdio.h> #include<string.h> int p[100005],s[100005]; int find(int i) { if(p[i]!=i) p[i]=find(p[i]); return p[i]; } int main(void) { int i,j,a,b,f=0,t,f1=0; memset(s,0,sizeof(s)); for(i=1;i<=100000;i++) p[i]=i; while(scanf("%d%d",&a,&b)!=EOF&&(a!=-1||b!=-1)) { if(a==0&&b==0) { for(i=1;i<=100000;i++) if(s[i]==1) {t=find(i);break;} for(j=i+1;j<=100000;j++) if(s[j]==1&&find(j)!=t) {f1=1;break;} if(f==0&&f1==0) printf("Yes\n"); else printf("No\n"); memset(s,0,sizeof(s)); f=0;f1=0; for(i=1;i<=100000;i++) p[i]=i; } else {s[a]=1;s[b]=1; a=find(a); b=find(b); if(a==b) f=1; else p[b]=a; } } return 0; }