#pragma GCC target("avx2") #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") #include using namespace std; using ll = long long; const int INF = 1e9; const ll inf = 1LL<<62; void solve() { auto f = [](__int128_t x) -> __int128_t { __int128_t res = 1; for (__int128_t i=2; i<=x; i++) res *= i; return res; }; int n; cin >> n; map m; for (int i=0; i> a; m[a]++; } __int128_t ans = f(n); for (auto p : m) ans /= f(p.second); cout << (ll)(ans) << '\n'; } int main() { ios::sync_with_stdio(false); std::cin.tie(nullptr); // int t; cin >> t; /*while (t--)*/ solve(); }