#include <bits/stdc++.h>
#define max(a,b) (a>b?a:b)
#define min(a,b) (a<b?a:b)
#define endl '\n'
using namespace std;
const int N = 1005;
const int M = 205;
const int mod = 1e9+7;
int n,m,k;
int f[2][M][M];
int t[2][M][M];
char a[N],b[N];
/*
a[i] == b[i] 选:t[i&1][j][p] = (t[i-1&1][j-1][p] + f[i-1&1][j-1][p-1]) % mod
a[i] != b[i] 不选:t[i&1][j][p] = 0;
f[i&1][j][p] = (f[i-1&1][j][p] + t[i&1][j][p]) % mod
*/
int main(){
ios::sync_with_stdio(0);
cin.tie(NULL);
cin >> n >> m >> k;
cin >> a+1 >> b+1;
f[0][0][0] = 1;
for(int i = 1; i <= n; i++){
f[i&1][0][0] = 1;
for(int j = 1; j <= m; j++){
for(int p = 1; p <= k; p++){
if(a[i] == b[i])
t[i&1][j][p] = (t[(i-1)&1][j-1][p] + f[(i-1)&1][j-1][p-1]) % mod;
else t[i&1][j][p] = 0;
f[i&1][j][p] = (f[(i-1)&1][j][p] + t[i&1][j][p]) % mod;
}
}
}
cout << f[n&1][m][k] << endl;
return 0;
}
样例没过……