#include #include using namespace std; using ll = long long; using P = pair; using graph = vector>; constexpr ll MOD = 998244353; graph G; vector cnt; ll modpow(ll a, ll x){ ll ans = 1; while(x > 0){ if(x & 1){ ans *= a; ans %= MOD; } a *= a; a %= MOD; x >>= 1; } return ans; } int dfs(int c, int p){ // cout << c << " "; if(cnt[c] != -1) return cnt[c]; cnt[c] = 1; for(auto &nex: G[c]){ if(nex == p) continue; cnt[c] += dfs(nex, c); } return cnt[c]; } int main(){ ll n; cin >> n; G = graph(n); cnt = vector(n, -1); //parent = vector(n, -1); for(int i = 0; i < n-1; i++){ int u, v; cin >> u >> v; u--; v--; G[u].push_back(v); G[v].push_back(u); } // cerr << " "; dfs(0, -1); ll tot = 0; for(int i = 1; i < n; i++){ tot += (n-cnt[i])*(n-cnt[i]-1); tot += cnt[i]*(cnt[i]-1); // cout << tot << " "; tot %= MOD; } cout << tot*modpow(n*(n-1)%MOD*(n-1)%MOD, MOD-2)%MOD << endl; return 0; }