#include <bits/stdc++.h>
using namespace std;const unsigned p=1e9+7;
#define void inline void
#define int register unsigned
#define vint vector<unsigned>
vint t;map<vint,unsigned>m;const unsigned N=1e5+1;unsigned char a[N],b[N],c[128];unsigned ans;
signed main(){ios::sync_with_stdio(0);int n;cin>>n;fread(a,1,n,stdin);memcpy(b,a,sizeof a);
sort(b,b+n);const int k=unique(b,b+n)-b;m[t=vint(k,0)]=1;for(int i=0;i<=k;++i)
c[b[i]]=i;for(int i=0;i<n;++i){if(a[i]^b[0])++t[c[a[i]]];
else{for(int &i:t)--i;++t[0];}(ans+=m[t]++)%=p;}cout<<ans%p;}
//测试点1输入:
100
SsSsSsSsSsSSssSSsSSssSsSsssssSsSssssSsSSSSsSSSSsSsSssSSSSsSSsssSssSssssSsssSssSsSssssssSSssSSsSSSsSS
//输出:
440
//本地输出:440
//在线IDE输出:5050
样例2本地输出1,同学的电脑无输出,在线IDE输出28