#include using namespace std; #define ALL(x) x.begin(),x.end() #define rep(i,n) for(int i=0;i<(n);i++) #define debug(v) cout<<#v<<":";for(auto x:v){cout<bool chmax(T &a,const T &b){if(abool chmin(T &a,const T &b){if(bn-r) r=n-r; if(r==0) return 1; ll a=1; for(ll i=0;i>n; vector> g(n); rep(i,n-1){ int u,v;cin>>u>>v;u--,v--; g[u].push_back(v); g[v].push_back(u); } vector dep(n,0); function dfs=[&](int pre,int now){ for(auto to:g[now])if(pre!=to){ dep[to]=dep[now]+1; dfs(now,to); } }; dfs(-1,0); vector depcnt(n+1,0); rep(i,n) depcnt[dep[i]+1]++; ll ans=0; for(ll i=1;i<=n;i++){ ll res=1; res*=depcnt[i]*fac[n-i]%mod; ll sf=fac[n]*(n+1-i)%mod*inv_mod(i*fac[n+1-i]%mod)%mod; // cout<