#include <bits/stdc++.h>
using namespace std;
long long int dp[205][205][205];
long long int n, k;
string s, t;
char c1, c2;
long long int solve(long long int pos, long long int k, long long int cnt) {
  if (pos >= n) {
    return 0;
  }
  if (dp[pos][k][cnt] != -1) return dp[pos][k][cnt];
  long long int ans = 0;
  ans = max(solve(pos + 1, k, cnt), ans);
  if (c1 == s[pos] && k >= 0) {
    ans = max(solve(pos + 1, k, cnt + 1), ans);
  } else if (c1 != s[pos] && k >= 1) {
    ans = max(solve(pos + 1, k - 1, cnt + 1), ans);
  }
  if (c2 == s[pos] && k >= 0) {
    ans = max(cnt + solve(pos + 1, k, cnt), ans);
  } else if (c2 != s[pos] && k >= 1) {
    ans = max(cnt + solve(pos + 1, k - 1, cnt), ans);
  }
  return dp[pos][k][cnt] = ans;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  ;
  cin >> n >> k;
  cin >> s >> t;
  c1 = t[0];
  c2 = t[1];
  for (int i = 0; i < 205; i++)
    for (int j = 0; j < 205; j++)
      for (int p = 0; p < 205; p++) dp[i][j][p] = -1;
  if (c1 != c2) {
    cout << solve(0, k, 0) << endl;
  } else {
    long long int cnt = 0;
    for (int i = 0; i < n; i++) {
      if (s[i] == c1) cnt++;
    }
    long long int ans = min(cnt + k, n);
    ans = ans * (ans - 1) / 2;
    cout << ans;
  }
}
