#include <iostream>
#include <bits/stdc++.h>

using namespace std;

int main()
{
    int N;
    string natpis;
    cin >> N;
    cin >> natpis;
    char maxDoSad = 'A';
    int niz[26];
    memset(niz,0,26);

    if(maxDoSad=='A')
    {
        for(int i=0; i<N; i++)
        {
            if(natpis[i]=='A')
                niz[0]++;
            else
            {
                maxDoSad=natpis[i];
                break;
            }
        }
    }
    else if(maxDoSad=='B')
    {
        for(int i=0; i<N; i++)
        {
            if(natpis[i]=='B')
                niz[1]++;
            else
            {
                maxDoSad=natpis[i];
                break;
            }
        }
    }
    else if(maxDoSad=='C')
    {
        for(int i=0; i<N; i++)
        {
            if(natpis[i]=='C')
                niz[2]++;
            else
            {
                maxDoSad=natpis[i];
                break;
            }
        }
    }
    else if(maxDoSad=='D')
    {
        for(int i=0; i<N; i++)
        {
            if(natpis[i]=='D')
                niz[3]++;
            else
            {
                maxDoSad=natpis[i];
                break;
            }
        }
    }
    else if(maxDoSad=='E')
    {
        for(int i=0; i<N; i++)
        {
            if(natpis[i]=='E')
                niz[4]++;
            else
            {
                maxDoSad=natpis[i];
                break;
            }
        }
    }
    else if(maxDoSad=='F')
    {
        for(int i=0; i<N; i++)
        {
            if(natpis[i]=='F')
                niz[5]++;
            else
            {
                maxDoSad=natpis[i];
                break;
            }
        }
    }
    else if(maxDoSad=='G')
    {
        for(int i=0; i<N; i++)
        {
            if(natpis[i]=='G')
                niz[6]++;
            else
            {
                maxDoSad=natpis[i];
                break;
            }
        }
    }
    else if(maxDoSad=='H')
    {
        for(int i=0; i<N; i++)
        {
            if(natpis[i]=='H')
                niz[7]++;
            else
            {
                maxDoSad=natpis[i];
                break;
            }
        }
    }
    else if(maxDoSad=='I')
    {
        for(int i=0; i<N; i++)
        {
            if(natpis[i]=='I')
                niz[8]++;
            else
            {
                maxDoSad=natpis[i];
                break;
            }
        }
    }
    else if(maxDoSad=='J')
    {
        for(int i=0; i<N; i++)
        {
            if(natpis[i]=='J')
                niz[9]++;
            else
            {
                maxDoSad=natpis[i];
                break;
            }
        }
    }
    else if(maxDoSad=='K')
    {
        for(int i=0; i<N; i++)
        {
            if(natpis[i]=='K')
                niz[10]++;
            else
            {
                maxDoSad=natpis[i];
                break;
            }
        }
    }
    else if(maxDoSad=='L')
    {
        for(int i=0; i<N; i++)
        {
            if(natpis[i]=='L')
                niz[11]++;
            else
            {
                maxDoSad=natpis[i];
                break;
            }
        }
    }
    else if(maxDoSad=='M')
    {
        for(int i=0; i<N; i++)
        {
            if(natpis[i]=='M')
                niz[12]++;
            else
            {
                maxDoSad=natpis[i];
                break;
            }
        }
    }
    else if(maxDoSad=='N')
    {
        for(int i=0; i<N; i++)
        {
            if(natpis[i]=='N')
                niz[13]++;
            else
            {
                maxDoSad=natpis[i];
                break;
            }
        }
    }
    else if(maxDoSad=='O')
    {
        for(int i=0; i<N; i++)
        {
            if(natpis[i]=='O')
                niz[14]++;
            else
            {
                maxDoSad=natpis[i];
                break;
            }
        }
    }
    else if(maxDoSad=='P')
    {
        for(int i=0; i<N; i++)
        {
            if(natpis[i]=='P')
                niz[15]++;
            else
            {
                maxDoSad=natpis[i];
                break;
            }
        }
    }
    else if(maxDoSad=='Q')
    {
        for(int i=0; i<N; i++)
        {
            if(natpis[i]=='Q')
                niz[16]++;
            else
            {
                maxDoSad=natpis[i];
                break;
            }
        }
    }
    else if(maxDoSad=='R')
    {
        for(int i=0; i<N; i++)
        {
            if(natpis[i]=='R')
                niz[17]++;
            else
            {
                maxDoSad=natpis[i];
                break;
            }
        }
    }
    else if(maxDoSad=='S')
    {
        for(int i=0; i<N; i++)
        {
            if(natpis[i]=='S')
                niz[18]++;
            else
            {
                maxDoSad=natpis[i];
                break;
            }
        }
    }
    else if(maxDoSad=='T')
    {
        for(int i=0; i<N; i++)
        {
            if(natpis[i]=='T')
                niz[19]++;
            else
            {
                maxDoSad=natpis[i];
                break;
            }
        }
    }
    else if(maxDoSad=='U')
    {
        for(int i=0; i<N; i++)
        {
            if(natpis[i]=='U')
                niz[20]++;
            else
            {
                maxDoSad=natpis[i];
                break;
            }
        }
    }
    else if(maxDoSad=='V')
    {
        for(int i=0; i<N; i++)
        {
            if(natpis[i]=='V')
                niz[21]++;
            else
            {
                maxDoSad=natpis[i];
                break;
            }
        }
    }
    else if(maxDoSad=='W')
    {
        for(int i=0; i<N; i++)
        {
            if(natpis[i]=='W')
                niz[22]++;
            else
            {
                maxDoSad=natpis[i];
                break;
            }
        }
    }
    else if(maxDoSad=='X')
    {
        for(int i=0; i<N; i++)
        {
            if(natpis[i]=='X')
                niz[23]++;
            else
            {
                maxDoSad=natpis[i];
                break;
            }
        }
    }
    else if(maxDoSad=='Y')
    {
        for(int i=0; i<N; i++)
        {
            if(natpis[i]=='Y')
                niz[24]++;
            else
            {
               maxDoSad=natpis[i];
               break;
            }
        }
    }
    else if(maxDoSad=='Z')
    {
        for(int i=0; i<N; i++)
        {
            if(natpis[i]=='Z')
                niz[25]++;
        }
    }
    int resenje=1;
    for(int i=0; i<26;i++)
    {
        if(niz[i]!=0&&niz[i]!=1)
            resenje = (resenje * niz[i])%(1000000007);
    }
    cout << resenje;
    return 0;
}