#include using namespace std; #ifdef _RUTHEN #include "debug.hpp" #else #define show(...) true #endif using ll = long long; #define rep(i, n) for (int i = 0; i < (n); i++) template using V = vector; int main() { ios::sync_with_stdio(false); cin.tie(0); int N; cin >> N; V A(N); rep(i, N) cin >> A[i]; map mp; rep(i, N) mp[A[i]]++; V facl(N + 1, 1); rep(i, N) facl[i + 1] = facl[i] * (i + 1); ll ans = facl[N]; for (auto [ai, c] : mp) ans /= facl[c]; cout << ans << '\n'; return 0; }