#include <bits/stdc++.h>
using namespace std;
const int N = 210;
int n, ava, dp[N][N][N];
string s, t;
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.precision(10);
  cout << fixed;
  for (int i = 0; i < N; ++i) {
    for (int j = 0; j < N; ++j) {
      for (int k = 0; k < N; ++k) {
        dp[i][j][k] = -INT_MAX;
      }
    }
  }
  cin >> n >> ava;
  cin >> s;
  cin >> t;
  dp[0][0][0] = 0;
  for (int i = 0; i < n; ++i) {
    for (int j = 0; j <= ava; ++j) {
      for (int k = 0; k <= n; ++k) {
        if (dp[i][j][k] == -INT_MAX) continue;
        int e0 = (s[i] == t[0]);
        int e1 = (s[i] == t[1]);
        int e01 = (t[0] == t[1]);
        dp[i + 1][j][k + e0] =
            max(dp[i + 1][j][k + e0], dp[i][j][k] + (e1 ? k : 0));
        if (j < ava) {
          dp[i + 1][j + 1][k + 1] =
              max(dp[i + 1][j + 1][k + 1], dp[i][j][k] + (e01 ? k : 0));
          dp[i + 1][j + 1][k + e01] =
              max(dp[i + 1][j + 1][k + e01], dp[i][j][k] + k);
        }
      }
    }
  }
  int ans = 0;
  for (int i = 0; i <= ava; ++i) {
    for (int j = 0; j <= n; ++j) {
      ans = max(ans, dp[n][i][j]);
    }
  }
  cout << ans << '\n';
  return 0;
}
