#include <iostream>
#include <string>
using namespace std;

bool ponF[26] = {0};
bool ponB[26] = {0};
long long pon[26] = {0};
bool izbacivanja[1000000] = {0};

int main()
{
    int n;
    string text;
    cin >> n;
    cin >> text;
    if(n == 26)
    {
        cout << 0;
        return 0;
    }
    for(int i = 0;i < n;i++)
    {
        bool prolazi = 1;
        for(int j = 0;j < text[i] - 'A';j++)
        {
            if(ponF[j]==0)
            {
                prolazi = 0;
                break;
            }
        }
        if(prolazi)
        {
            ponF[text[i] - 'A'] = 1;
        }
        else
        {
            izbacivanja[i] = 1;
        }
    }

    for(int i = n-1;i >= 0;i--)
    {
        bool prolazi = 1;
        if(izbacivanja[i] == 1)
            continue;
        for(int j = 0;j < 'Z' - text[i];j++)
        {
            if(ponB[j]==0)
            {
                prolazi = 0;
                break;
            }
        }
        if(prolazi)
        {
            ponB['Z' - text[i]] = 1;
        }
        else
        {
            izbacivanja[i] = 1;
        }
    }

    for(int i = 0;i < n;i++)
    {
        if(izbacivanja[i] == 1)
            continue;
        pon[text[i]-'A']+=1;
    }
    long long proizvod = 1;
    for(int i = 0;i < 26;i++)
    {
        proizvod = (proizvod*pon[i])%1000000007;
    }
    cout << proizvod;
}