#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
//英语 看博友分析 抄博友程序 组合 dfs 没掌握
char a[100];
char b[100];
int n;
long long c(int n,int m)//背
{
long long jg=1;
for(long long i=(n-m+1);i<=n;i++)
{
jg=i*jg;
}
for(long long i=1;i<=m;i++)
{
jg=jg/i;
}
return jg;
}
long long dfs(int l, int r, int L, int R)//抄博友程序 没掌握
{
if(l>=r)
{
return 1;
}
int js=0;
long long ans=1;
int bl=L;
for(int i=l+1;i<=r;)
{
int br, len;
for(int j=bl;j<=R;j++)
{
if(a[i]==b[j])
{
br=j;
break;
}
}
js++;
len=br-bl+1;
ans=ans*dfs(i,i+len-1,bl,br);
bl=br+1;
i=i+len;
}
ans*=c(n,js);
return ans;
}
int main()
{
while(1)
{
scanf("%d",&n);
if(n==0)
{
break;
}
scanf("%s%s",a+1,b+1);
printf("%lld\n",dfs(1,strlen(a+1),1,strlen(a+1)));
}
return 0;
}