#include<iostream>
using namespace std;
const int mod=1000000007;
char a[1005],b[205];
int n,m,K,dp[2][205][205][2],s,false_,true_=1;
int main()
{
cin>>n>>m>>K>>a>>b;
for(int i=1;i<=n;i++)
{
swap(false_,true_);
dp[false_][1][1][0]=s;
if(a[i]==b[1])
{
dp[false_][1][1][1]=1;
s++;
}
for(int j=2;j<=m;j++)
{
for(int k=1;k<=K;k++)
{
if(a[i]==b[j])
{
dp[false_][j][k][1]=((dp[true_][j-1][k-1][1]+dp[true_][j-1][k][1])%mod+dp[true_][j-1][k-1][0])%mod;
}
dp[false_][j][k][0]=(dp[true_][j][k][0]+dp[true_][j][k][1])%mod;
}
}
for(int j=1;j<=m;j++)
{
for(int k=1;k<=K;k++)
{
dp[true_][j][k][1]=dp[true_][j][k][0]=0;
}
}
}
cout<<(dp[false_][m][K][1]+dp[false_][m][K][0])%mod;
return 0;
}