#include <bits/stdc++.h>
using namespace std;
char A[1002], B[1002];
int n, m, KK;
int dp[2][1002][11][2];
int main() {
  scanf("%d%d%d", &n, &m, &KK);
  scanf("%s%s", A, B);
  for (int i = n; i >= 0; --i)
    for (int j = m; j >= 0; --j)
      for (int k = 0; k <= KK; ++k)
        for (int flag = 0; flag <= 1; ++flag) {
          int& r = dp[i & 1][j][k][flag];
          r = 0;
          if (i == n || j == m) {
          } else {
            if (flag) {
              if (A[i] == B[j]) r = max(r, dp[(i + 1) & 1][j + 1][k][1] + 1);
            } else {
              if (A[i] == B[j] && k)
                r = max(r, dp[(i + 1) & 1][j + 1][k - 1][1] + 1);
            }
            r = max(r, dp[(i + 1) & 1][j][k][0]);
            r = max(r, dp[i & 1][j + 1][k][0]);
          }
        }
  printf("%d\n", dp[0][0][KK][0]);
  return 0;
}
