#include<bits/stdc++.h>
using namespace std;
int const p=1e9+7;
int f[1005][2][2],g[1005][2][2],h[1005][2][2];
int main()
{
    int n;
    char aa,ab,ba,bb;
    cin>>n>>aa>>ab>>ba>>bb;
    f[2][0][0]=f[2][0][1]=f[2][1][0]=f[2][1][1]=1;
    g[2][0][0]=g[2][0][1]=g[2][1][0]=g[2][1][1]=1;
    h[2][0][0]=h[2][0][1]=h[2][1][0]=h[2][1][1]=1;
    int t0=aa-'A',t1=ab-'A',t2=ba-'A',t3=bb-'A';
    for(int i=3;i<=n;i++)
    {
        for(int j=2;j<i;j++)
        {
            if(t0)f[i][0][0]=(f[i][0][0]+1ll*g[j][0][t0]*f[i-j+1][t0][0])%p;
            else f[i][0][0]=(f[i][0][0]+1ll*h[j][0][t0]*f[i-j+1][t0][0])%p;
            if(t1)f[i][0][1]=(f[i][0][1]+1ll*f[j][0][t1]*g[i-j+1][t1][1])%p;
            else f[i][0][1]=(f[i][0][1]+1ll*h[j][0][t1]*f[i-j+1][t1][1])%p;
            if(t2)f[i][1][0]=(f[i][1][0]+1ll*g[j][1][t2]*f[i-j+1][t2][0])%p;
            else f[i][1][0]=(f[i][1][0]+1ll*h[j][1][t2]*f[i-j+1][t2][0])%p;
            if(t3)f[i][1][1]=(f[i][1][1]+1ll*g[j][1][t3]*f[i-j+1][t3][1])%p;
            else f[i][1][1]=(f[i][1][1]+1ll*h[j][1][t3]*f[i-j+1][t3][1])%p;
            if(!t0)g[i][0][0]|=(g[j][0][0]&g[i-j+1][0][0]);
            if(!t1)g[i][0][1]|=(g[j][0][0]&g[i-j+1][0][1]);
            if(!t2)g[i][1][0]|=(g[j][1][0]&g[i-j+1][0][0]);
            if(!t3)g[i][1][1]|=(g[j][1][0]&g[i-j+1][0][1]);
            if(t0)h[i][0][0]|=(h[j][0][1]&h[i-j+1][1][0]);
            if(t1)h[i][0][1]|=(h[j][0][1]&h[i-j+1][1][1]);
            if(t2)h[i][1][0]|=(h[j][1][1]&h[i-j+1][1][0]);
            if(t3)h[i][1][1]|=(h[j][1][1]&h[i-j+1][1][1]);
        }
    }
    cout<<f[n][0][1];
    return 0;
}
#include <iostream>
using namespace std;
typedef long long ll;
const int N=1007;
const ll mod=1e9+7;
int n;
ll fib[N];
char c1,c2,c3,c4;
ll ksm(ll x,ll p){
    ll res=1;
    while(p){
        if(p&1) res=res*x%mod;
        p/=2;
        x=x*x%mod;
    }
    return res;
}
void init(){
    fib[1]=1,fib[2]=1;
    for(int i=3;i<=n;i++){
        fib[i]=(fib[i-1]+fib[i-2])%mod;
    }
}
int main(){
    cin>>n;
    cin>>c1>>c2>>c3>>c4;
    if(n==2){
        cout<<1<<"\n";
        return 0;
    }
    init();
    if((c2=='A'&&c1=='A')||(c2=='B'&&c4=='B')){
        cout<<"1\n";
    }else if(c2=='A'&&c1=='B'&&c3=='B'){
        cout<<ksm(2,n-3)<<"\n";
    }else if(c2=='B'&&c4=='A'&&c3=='A'){
        cout<<ksm(2,n-3)<<"\n";
    }else{
        cout<<fib[n-1]<<"\n";
    }
}
