#include <bits/stdc++.h>
#define p 1000000007
using namespace std;
char s[2005];
long long cnt[30],f[2005],inv[2005],ans;
long long P(long long n,long long m){
return f[n]*inv[f[n-m]]%p;
}
int main(){
long long ji_num,n,len;
f[0]=f[1]=1;
for(int i=2;i<=2000;i++)
f[i]=f[i-1]*i%p;
inv[1]=1;
for(int i=2;i<=2000;i++)
inv[i]=(p-(p/i))*inv[p%i]%p;
while(cin>>n>>s){
ji_num=0; memset(cnt,0,sizeof(cnt));
for(int i=0;i<n;i++)
cnt[s[i]-'a'+1]++;
for(int i=1;i<=26;i++)
if(cnt[i]&1) ji_num++;
if(ji_num>1){
cout<<f[n]%p<<endl;
continue;
}
ji_num=1;
for(int i=1;i<=26;i++){
if(cnt[i]&1) ji_num=cnt[i];
cnt[i]>>=1;
}
ans=f[n/2]*ji_num%p;
for(int i=1;i<=26;i++){
if(cnt[i]==0) continue;
ans=ans%p*P(cnt[i]*2,cnt[i])%p;
}
cout<<(f[n]-ans+p)%p<<endl;
}
return 0;
}