#include <bits/stdc++.h>
using namespace std;
const int maxn = 205;
const int mod = 998244353;
long long dp[maxn][maxn][maxn];
char s[maxn];
int main() {
  int n, k;
  scanf("%d%d", &n, &k);
  char op[10];
  scanf("%s%s", s + 1, op);
  memset(dp, 0xcf, sizeof(dp));
  dp[0][0][0] = 0;
  int num = 0;
  long long sum = 0;
  for (int i = 1; i <= n; i++) {
    if (s[i] == op[1]) sum += num;
    if (s[i] == op[0]) num++;
    dp[i][0][num] = sum;
    for (int j = 0; j < i; j++) {
      for (int q = 0; q <= min(i, k); q++) {
        if (s[i] == op[0]) {
          int num = 0;
          if (op[0] == op[1]) num = j;
          dp[i][q][j + 1] = max(dp[i][q][j + 1], dp[i - 1][q][j] + num);
        } else if (s[i] == op[1]) {
          dp[i][q][j + (op[0] == op[1])] =
              max(dp[i][q][j + (op[0] == op[1])], dp[i - 1][q][j] + j);
        } else {
          dp[i][q][j] = max(dp[i][q][j], dp[i - 1][q][j]);
        }
        if (q != 0) {
          dp[i][q][j + (op[0] == op[1])] =
              max(dp[i][q][j + (op[0] == op[1])], dp[i - 1][q - 1][j] + j);
          int num = 0;
          if (op[0] == op[1]) num = j;
          dp[i][q][j + 1] = max(dp[i][q][j + 1], dp[i - 1][q - 1][j] + num);
        }
      }
    }
  }
  long long ans = 0;
  for (int i = 0; i <= n; i++) {
    for (int j = 0; j <= k; j++) {
      ans = max(ans, dp[n][j][i]);
    }
  }
  printf("%lld\n", ans);
  return 0;
}
