#include<bits/stdc++.h>
# define endl            '\n'
# define clr(x,a)        memset(x,a,sizeof(x))
# define PI              3.14159265358979323846
# define vi              vector<int>
# define fo(i,n)         for(int i=1;i<=n;i++)
# define all(a)          a.begin(), a.end()
# define deb(x)          cout<<#x<<" = "<<x<<endl;
# define pb              push_back
# define sc              scanf
# define pr              printf
# define tc              int t; cin>>t; while(t--)
typedef long long ll;
using namespace std;

const int mxN=1000006, mxM=1000006, mod=1e9+7;
int n, maxc;
string s, rec;
ll niz[50];
bool imam[50];
int prethodni[30], poz;
ll sol;

void napravi_rec(){
   for(int i=0; i<n; i++)
      imam[s[i]-'A']=1;
   for(int i=0; i<26; i++) if(imam[i]) rec.pb(i+'A');
   clr(prethodni, -1);
   for(int i=0; i<rec.size(); i++){
      if(i)
         prethodni[rec[i]-'A']=rec[i-1]-'A';
   }
}

int main(){
//   freopen("in.txt", "r", stdin);
   cin>>n>>s;

   napravi_rec();

   for(int i=0; i<n; i++){
      poz=s[i]-'A';
      if(prethodni[poz]==-1)
         niz[poz]++;
      else
         niz[poz]=(niz[poz]+niz[prethodni[poz]])%mod;
      if(poz+'A'==rec[rec.size()-1]) sol=niz[poz];
   }

   cout<<sol<<endl;

   return 0;
}