#include using namespace std; #include using namespace atcoder; using mint=modint1000000007; using ll=long long; #define rep(i,N) for(int i=0;i>N; dsu g(N*2); vector> v; rep(i,N-1){ cin>>a>>b; v.emplace_back(--a,--b); g.merge(a,b+N); g.merge(b,a+N); } mf_graph fg(N+2); rep(i,N)if(g.same(0,i)){ fg.add_edge(N,i,1); }else{ fg.add_edge(i,N+1,1); } for(auto[a,b]:v){ if(g.same(0,a))fg.add_edge(a,b,1); else fg.add_edge(b,a,1); } cout<