#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;
}
