#include <bits/stdc++.h>
using namespace std;
const int MODULO = 998244353;
const int N_MAX = 200010;
vector<int> neighbors[N_MAX];
int factorials[N_MAX];
int n;
int calculateBranch(int x, int par) {
  int perm = factorials[neighbors[x].size()];
  for (int y : neighbors[x]) {
    if (y != par) {
      perm = ((long long)perm * calculateBranch(y, x)) % MODULO;
    }
  }
  return perm;
}
void outerInit() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
  auto fi = new ifstream("test.inp");
  if (*fi) {
    cin.rdbuf(fi->rdbuf());
  }
}
void readData() {
  cin >> n;
  for (int i = 1; i < n; ++i) {
    int x, y;
    cin >> x >> y;
    neighbors[x].push_back(y);
    neighbors[y].push_back(x);
  }
}
void initData() {
  factorials[0] = 1;
  for (int i = 1; i <= n; ++i) {
    factorials[i] = ((long long)factorials[i - 1] * i) % MODULO;
  }
}
void solveData() { cout << ((long long)n * calculateBranch(1, 0)) % MODULO; }
int main() {
  outerInit();
  readData();
  initData();
  solveData();
}
