#include<iostream>
#include<map>
using namespace std;
const long long Mod=1000000007;
int n,c[2010][2010];
char s[2010];
map<char,int>f;
long long ans=1,_sum=1;
void C(){
for(int i=1;i<=n;i++){
c[i][1]=i;
c[i][i]=1;
}
for(int i=1;i<=n;i++){
for(int j=1;j<=i;j++){
if(!c[i][j])
c[i][j]=c[i-1][j]+c[i-1][j-1];
}
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>s[i];
f[s[i]]++;
}
for(int i=1;i<=n;i++){
ans*=i%Mod;
}
C();
if(n%2==0){
for(int i='a';i<='z';i++){
if(f[i])
_sum*=c[f[i]][f[i]/2]%Mod;
}
for(int i=1;i<=n/2;i++){
_sum*=i%Mod;
}
_sum*=2%Mod;
}
if(n%2==1){
char mid;
for(int i='a';i<='z';i++){
if(f[i]%2==1){
mid=i;
}
else _sum*c[f[i]][f[i]/2]%Mod;
}
for(int i=1;i<=n/2;i++){
_sum*=i%Mod;
}
_sum*=2%Mod;
_sum*=f[mid]%Mod;
}
cout<<(ans-_sum+Mod)%Mod;
return 0;
}