#include<bits/stdc++.h>
#define mod 100003
using namespace std;
int n;
char s[3001],t[3001];
long long ans;
vector<char*>a[mod];
int value(char* x,int len)
{
int ans=0;
//cout<<len<<endl;
for(int i=0; i<=len; i++)
{
ans=(ans*27+x[i]-'a'+1)%mod;
}
return ans;
}
bool mfind(char* x,int y)
{
// bool ok=0;
for(int i=0; i<a[y].size(); i++)
{
if(x==a[y][i])
{
return 1;
}
}
return 0;
}
int main()
{
//freopen("block.in","r",stdin);
//freopen("block.out","w",stdout);
scanf("%d%s%s",&n,&s,&t);
//枚举bob
for(int i=0; i<n; i++) //左边丢i个
{
for(int j=0; j<n-i; j++) //右边丢j个
{
int len=j-i+1;
char now[3001];
int nowlen=-1;
for(int k=i; k<n-j; k++)
{
now[++nowlen]=t[k];
}
/* for(int k=0;k<=nowlen;k++)
{
cout<<now[k];
}*/
//cout<<endl;
int kk=value(now,nowlen);
if(mfind(now,kk))
{
continue;
}
a[kk].push_back(now);
//find
int l=-1;
bool bigok=1;
for(int k=0; k<=nowlen; k++)
{
bool ok=0;
while(l<n)
{
l++;
if(s[l]==now[k])
{
ok=1;
break;
}
}
if(!ok)
{
bigok=0;
break;
}
}
if(bigok)
{
// printf("bigok: i:%d j:%d\n",i,j);
ans++;
}
}
}
printf("%lld",ans);
return 0;
}