#include <bits/stdc++.h>
using namespace std;
const int MOD = 1e9 + 7;

int main() {
    
    //ifstream cin("750.in");

    int n; cin >> n;
    
    map<int, int> f;

    for(int i = 0; i < n; ++i) {
        int x; cin >> x;
        f[x]++;
    }

    vector<int> fact(n + 1, 1), inv(n + 1, 1), invFact(n + 1, 1);

    for(int i = 1; i <= n; ++i)
        fact[i] = 1LL * fact[i - 1] * i % MOD;
    for(int i = 2; i <= n; ++i)
        inv[i] = (MOD - 1LL * (MOD / i) * inv[MOD % i] % MOD);
    for(int i = 1; i <= n; ++i)
        invFact[i] = 1LL * invFact[i - 1] * inv[i] % MOD;

    auto Comb = [&] (int a, int b) {
        int ans = fact[a];
        ans = 1LL * ans * invFact[b] % MOD;
        ans = 1LL * ans * invFact[a - b] % MOD;
        return ans;
    };
    
    int ans = 1;

    for(const auto &elem : f) {
        int temp = 0;
        for(int i = 1; i <= elem.second; ++i) {
            int coef = Comb(elem.second, i);
            coef = 1LL * coef * coef % MOD;
            temp += 1LL * coef * ans % MOD;
            temp %= MOD;
        }
        ans += temp;
        ans %= MOD;
    }
    
    ans -= 1;
    if(ans < 0)
        ans += MOD; 
    cout << ans << "\n";
}