#include #include #include #include #include #include #include #include #include #include #include #include #include #include #define maxn 100010 #define ull unsigned long long #define ll long long #define reP(i,n) for(i=1;i<=n;i++) #define rep(i,n) for(i=0;ib; } int fa[maxn]; int ans,cnt; int mark[maxn]; void init(){ for(int i=0;i<=maxn;i++) fa[i]=-1; ans=0;cnt=0; cle(mark); } int findfa(int x){ while(fa[x]>=0) x=fa[x]; return x; } void Union(int x,int y){ int fa_x=findfa(x); int fa_y=findfa(y); if(fa_x!=fa_y) fa[fa_x]=fa_y; else{ ans++; } mark[x]=mark[y]=1; } int x,y; int main() { init(); while(cin>>x>>y){ if(x==-1&&y==-1)break; if(x==0&&y==0){ for(int i=1;i<=maxn;i++){ if((mark[i])&&(fa[i]==-1)) cnt++; } if(ans>0||cnt>1)printf("No\n"); else printf("Yes\n"); init(); continue; } Union(x,y); } return 0; }