#include #include #include #include #include #include using namespace std; typedef long long ll; typedef unsigned long long ull; typedef long double ld; typedef string str; #define ALL(x) (x).begin(),(x).end() #define RALL(x) (x).rbegin(),(x).rend() #define MAX_LL (1LL<<62) #define MOD 998244353 ll max(const ll &a, const ll &b) {if(a>b) return a; else return b;} ll min(const ll &a, const ll &b) {if(ab) a %= b; else b %= a;}} ull pow_mod(ull a, ull b, ull mod=-1) {if(mod<2) return 0; ull ans=1, now=a; while(b>0){if(b%2) ans=(ans*now)%mod; now=(now*now)%mod; b/=2;} return ans;} bool update_max(ll &a, const ll &b) {if(ab){a=b; return true;} else return false;} bool update_min(ld &a, const ld &b) {if(a>b){a=b; return true;} else return false;} ll upper_char_to_ll(const char &c) {return ll(c)-65;} int main() { ll N; cin >> N; vector> A(N); ll espar = 0; for(ll i=0; i> M; if(M == 0) espar++; for(ll j=0; j> temp; A[i].push_back(temp-1); } } if(espar>=2){ cout << "No" << endl; return 0; } vector is_reached(N); ll reached_counter = 0; queue reached_queue; reached_queue.push(0); is_reached[0] = true; reached_counter++; while(!reached_queue.empty()){ ll next_sacrifice = reached_queue.front(); //cout << next_sacrifice << ": " << endl; reached_queue.pop(); for(ll i=0; i= N) cout << "Yes" << endl; else cout << "No" << endl; return 0; }