#include <bits/stdc++.h>

using namespace std;

const int Mod = 1e9+7, ValMax = 1e6;
typedef long long ll;

int n, x, i, ap[ValMax+5], j;
ll ans, sum, fact[ValMax], ifact[ValMax];


ll Comb(int n, int k)
{
    return fact[n] * ifact[k] % Mod * ifact[n-k] % Mod;
}

ll sqr(ll x)
{
    return x * x % Mod;
}

ll power(ll a, int b)
{
    if(!b) return 1;
    if(b&1) return a*power(a*a%Mod, b/2) % Mod;
    return power(a*a%Mod, b/2);
}

int main()
{
  //  freopen("input", "r", stdin);
   // freopen("output", "w", stdout);

    scanf("%d", &n);
    for(i=1; i<=n; ++i)
    {
        scanf("%d", &x);
        ++ap[x];
    }

    fact[0] = ifact[0] = 1;
    for(i=1; i<=n; ++i)
        fact[i] = fact[i-1] * i % Mod;

    ifact[n] = power(fact[n], Mod-2);
    for(i=n-1; i; --i)
        ifact[i] = ifact[i+1] * (i+1) % Mod;


    ans = 1;
    for(i=1; i<=ValMax; ++i)
    if(ap[i])
    {
        sum = 0;
        for(j=0; j<=ap[i]; ++j)
            sum = (sum + sqr(Comb(ap[i], j))) % Mod;

        ans = ans * sum % Mod;
    }

    ans = (ans-1+Mod) % Mod;
    printf("%lld\n", ans);
    return 0;
}