#include<iostream>
#include<iterator>
#include<map>
#define MOD 1000000007
using namespace std;
basic_string<char> s;
map<int,char>m;
long long int count=0;
int n;
int ans[2005];
int used[2005];
bool isReply(basic_string<char>);
void mapInitialization();
void per(int step);
void judgeCnt();
int main(){
cin>>n;
cin>>s;
mapInitialization();
per(0);
cout<<count;
}
bool isReply(basic_string<char>a){
bool flag=true;
basic_string<char>::iterator it;
basic_string<char>::reverse_iterator rit;
for(it=a.begin(), rit=a.rbegin(); it<=rit.base(); it++,rit++){
if(*it!=*rit){
flag=false;
break;
}
}
return flag;
}
void mapInitialization(){
basic_string<char>::iterator it;
int ind=1;
for(it=s.begin(); it!=s.end(); it++){
m.insert(map<int,char>::value_type(ind,*it));
ind++;
}
}
void judgeCnt(){
basic_string<char>t;
int p=0;
for(int i=0; i<n; i++){
p=p*10+ans[i];
}
for(int i=0; i<n; i++){
t+=m[p%10];
p/=10;
}
if(!isReply(t)){
count++;
count%=MOD;
}
}
void per(int step){
if(step>=n){
judgeCnt();
return;
}
for(int j=1; j<=n; j++){
if(used[j]==0){
used[j]=1;
ans[step]=j;
per(step+1);
used[j]=0;
}
}
}```