#include<bits/stdc++.h>
using namespace std;
int n,m,k,f[1010][210][210][2];
string a,b;
int main( )
{
cin>>n>>m>>k;
cin>>a>>b;
for(int i=0;i<n;i++)
{
if(a[i]==b[0])
{
f[0][i][1][1]=1;
}
}
for(int i=1;i<n;i++)
{
f[0][i][1][0]=f[0][i-1][1][0]+f[0][i-1][1][1];
}
for(int i=1;i<m;i++)
{
for(int j=i;j<n;j++)
{
for(int kk=1;kk<=k;kk++)
{
/*if(k>(i+1)||k>(j+1))
{
break;
}*/
f[i][j][kk][0]+=f[i][j-1][kk][0]+f[i][j-1][kk][1];
f[i][j][kk][0]%=1000000007;
if(a[j]==b[i])
{
f[i][j][kk][1]+=f[i-1][j-1][kk-1][0]+f[i-1][j-1][kk-1][1];
if(a[j-1]==b[i-1])
{
f[i][j][kk][1]+=f[i-1][j-1][kk][1];
}
f[i][j][kk][1]%=1000000007;
}
}
}
}
/*for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
for(int kk=1;kk<=k;kk++)
{
cout<<f[i][j][kk]<<' ';
}
}
}*/
cout<<(f[m-1][n-1][k][1]+f[m-1][n-1][k][0])%1000000007;
/*for(int i=0;i<n;i++)
{
cout<<f[0][i][1][0]<<' '<<f[0][i][1][1]<<endl;
}*/
return 0;
}
//f[i][j][k][1]b前i个和a前j个匹配用k个名额 ,j选;
//f[i][j][k][0]b前i个和a前j个匹配用k个名额 ,j不选;
谢谢大佬