#include <bits/stdc++.h>
using namespace std;
const int maxn = 200 + 50;
int n, k, dp[maxn][maxn][maxn];
char s[maxn], t[maxn];
int main() {
  cin >> n >> k;
  cin >> s >> t;
  memset(dp, -0x3f3f3f3f, sizeof(dp));
  dp[0][0][0] = 0;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j <= k; j++) {
      for (int l = 0; l <= n; l++) {
        if (dp[i][j][l] == -0x3f3f3f3f) continue;
        int e0 = s[i] == t[0];
        int e1 = s[i] == t[1];
        int e01 = t[0] == t[1];
        dp[i + 1][j][l + e0] =
            max(dp[i + 1][j][l + e0], dp[i][j][l] + (e1 ? l : 0));
        if (j + 1 <= k) {
          dp[i + 1][j + 1][l + 1] =
              max(dp[i + 1][j + 1][l + 1], dp[i][j][l] + (e01 ? l : 0));
          dp[i + 1][j + 1][l + e01] =
              max(dp[i + 1][j + 1][l + e01], dp[i][j][l] + l);
        }
      }
    }
  }
  int ans = 0;
  for (int i = 0; i <= k; i++) {
    for (int j = 0; j <= n; j++) {
      ans = max(ans, dp[n][i][j]);
    }
  }
  cout << ans << endl;
  return 0;
}
