#include using namespace std; #include using mint=atcoder::modint1000000007; std::ostream &operator<< (std::ostream &os, mint m){ os<ios::sync_with_stdio(false); int N,K; cin>>N>>K; vector G(N,vector()); for(int i=0;i>a>>b; G[a].emplace_back(b); G[b].emplace_back(a); } auto dfs=[&G](this auto dfs,int p,int par=-1) -> vector> { vector> dp1(2); dp1[0][0]=dp1[1][1]=1; for(auto q:G[p]) if(q!=par){ auto dp2=dfs(q,p); const int A=ssize(dp1); const int B=ssize(dp2); vector> ndp(A+B-1); for(int i=0;i