#include<bits/stdc++.h>
typedef std::string str;
using namespace std;
vector<long long> arr(26,0);
long long mod=1000000007;
long long jiecheng(long long n){
long long ans=1;
for(int i=2;i<=n;i++) ans*=i;
return ans;
}
bool comp1(long long x,long long y){
return x>y;
}
long long count(long long n,str a){
if(a.size()==1) return 1;
if(a.size()==0) return 0;
long long flag=0;
for(int i=0;i<n;i++){
if(arr[i]%2==1) flag++;
}
if((flag>1)||(a.size()%2==0&&flag==1)||(a.size()%2==1)&&flag==0) return 0;
long long count2=0;
for(int i=0;i<n;i++){
count2+=(arr[i]/2);
}
return jiecheng(count2);
}
long long f(){
long long ans=1;
for(int i=0;i<26;i++){
ans*=(jiecheng(arr[i])/jiecheng(arr[i]/2));
}
return ans;
}
int main(){
long long n,cnt=0;
cin>>n;
str a;
cin>>a;
for(int i=0;i<n;i++){
if(arr[a[i]-'a']==0) cnt++;
arr[a[i]-'a']++;
}
sort(arr.begin(),arr.end(),comp1);
cout<<(jiecheng(n)-count(cnt,a)*f()+mod)%mod<<endl;
return 0;
}