#include #include #include #include #include using namespace std; using mint=atcoder::modint998244353; int N; vectorG[40000]; int ch[40000]; void dfs1(int u,int p) { ch[u]=1; for(int v:G[u])if(v!=p) { dfs1(v,u); ch[u]+=ch[v]; } } mint ans; mint ALL_INV; void dfs2(int u,int p,int pc) { mint P,Q; { mint sum=pc; mint cur=N; for(int v:G[u])if(v!=p) { cur+=sum*ch[v]; sum+=ch[v]; } P=cur*ALL_INV; Q=mint(pc)*ch[u]*ALL_INV; } ans+=P/(1-P); ans-=Q/(1-Q); for(int v:G[u])if(v!=p)dfs2(v,u,N-ch[v]); } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int T;cin>>T; for(;T--;) { cin>>N; for(int i=0;i>u>>v; u--,v--; G[u].push_back(v); G[v].push_back(u); } dfs1(0,-1); ans=1; ALL_INV=mint((long)N*(N+1)/2).inv(); dfs2(0,-1,0); cout<