func_code_string: #include <bits/stdc++.h>   using namespace std;   int fir[200010], to[200010 << 1], nxt[200010 << 1], cnt;   long long f[200010], fac[200010];   void add(int u, int v) {     nxt[++cnt] = fir[u];     fir[u] = cnt;     to[cnt] = v;   }   void dfs(int x, int fa) {     f[x] = 1;     int i, s = (x != 1);     for (i = fir[x]; i; i = nxt[i])       if (to[i] != fa) {         dfs(to[i], x);         f[x] *= f[to[i]];         f[x] %= 998244353;         s++;       }     f[x] *= fac[s];     f[x] %= 998244353;   }   int main() {     int n, i, u, v;     cin >> n;     fac[0] = 1;     for (i = 1; i <= n; i++) fac[i] = fac[i - 1] * i % 998244353;     for (i = 1; i < n; i++) scanf( %d%d , &u, &v), add(u, v), add(v, u);     dfs(1, 0);     cout << f[1] * n % 998244353;   }   