#include <cstdio>
#include <cstring>
using namespace std;
struct punct {int l;int c;} ;
punct c[40000],v;
FILE *f,*g;
char s[100],a[501][501],c2;
int m,n,i,j,e1,e,k1,k2,k,ok,b[501][501],l,c1,dl[]={0,1,0,-1},dc[]={1,0,-1,0},v1;
long long nr,p,u;
int main()
{f=fopen ("litere.in","r");
g=fopen ("litere.out","w");
fgets (s,100,f);
k2=strlen (s);
fscanf (f,"%d %d",&n,&m);
fscanf (f,"%c",&c2);
for (i=0;i<n;i++) fgets (a[i],m+2,f);
k=0;
for (i=0;i<n;i++)
for (j=0;j<strlen (a[i]);j++)
if (s[k]==a[i][j])
{
p=1;u=1;
c[p].l=i;b[l][c1]=1;
c[p].c=j;ok=0;k1=4;k2=0;k++;
while (p<=u && k<=strlen (s))
{
v=c[p];
for (v1=0;v1<=3;v1++)
{ k1--;
l=v.l+dl[v1];
c1=v.c+dc[v1];
if (a[l][c1]==s[k] && b[l][c1]==0) {k2++;
c[++u].l=l;
c[u].c=c1;
if (k==strlen (s)-2) nr++;
b[l][c1]=1;
}
}
if (k1==0) {k1=k2*4;
k2=0;
k++;
}
p++;
}
for (e=0;e<=n;e++)
for (e1=0;e1<=m;e1++) b[e][e1]=0;
k=0;
}
fprintf (g,"%lld",nr);
return 0;
}