#include using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair P; #define fi first #define se second #define repl(i,a,b) for(ll i=(ll)(a);i<(ll)(b);i++) #define rep(i,n) repl(i,0,n) #define all(x) (x).begin(),(x).end() #define dbg(x) cout<<#x"="<y?x:y) #define mmin(x,y) (x0){ if(n&1)res=res*a%mod; a=a*a%mod; n>>=1; } return res; } ll n; vector g[200010]; ll res=0; void dfs(ll v,ll pre,ll d){ for(ll nv : g[v]){ if(nv==pre)continue; dfs(nv,v,d+1); } ll add=fac[d]*comb(n,d+1)%mod; add*=fac[n-1-d]; add%=mod; res+=add; res%=mod; } int main(){ cin.tie(0); ios::sync_with_stdio(false); fac[0]=1; rep(i,200000)fac[i+1]=fac[i]*(i+1)%mod; rep(i,200001)finv[i]=mod_pow(fac[i],mod-2); cin>>n; rep(i,n-1){ ll a,b; cin>>a>>b; a--;b--; g[a].push_back(b); g[b].push_back(a); } dfs(0,-1,0); cout<