#include #include #include using namespace std; const long long MOD = 1000000007LL; int main() { int n; cin >> n; vector a(n); for (int i = 0; i < n; ++i) { cin >> a[i]; } map valueToCount; for (int i = 0; i < n; ++i) { ++valueToCount[a[i]]; } int m = valueToCount.size(); if (m < 3) { cout << 0 << endl; return 0; } long long patterns = m * (m - 1) * (m - 2) / 6; for (map::const_iterator it = valueToCount.begin(); it != valueToCount.end(); ++it) { patterns *= it->second; patterns %= MOD; } cout << patterns << endl; return 0; }