#include <bits/stdc++.h>
using namespace std;
int dp[201][201][201];
int n;
string s, t;
int solve(int pos, int nt0, int k) {
  if (pos >= n) return 0;
  if (dp[pos][nt0][k] != -1) return dp[pos][nt0][k];
  int ans = 0;
  ans = max(ans, solve(pos + 1, nt0, k));
  int cost = (s[pos] != t[0]) ? 1 : 0;
  if (cost <= k) {
    ans = max(ans, solve(pos + 1, nt0 + 1, k - cost));
  }
  cost = (s[pos] != t[1]) ? 1 : 0;
  if (cost <= k) {
    ans = max(ans, nt0 + solve(pos + 1, nt0, k - cost));
  }
  return dp[pos][nt0][k] = ans;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int k;
  cin >> n >> k;
  cin >> s >> t;
  memset(dp, -1, sizeof(dp));
  long long ans = 0;
  if (t[0] == t[1]) {
    int cnt = 0;
    for (char c : s)
      if (c == t[0]) cnt++;
    cnt += k;
    cnt = min(n, cnt);
    ans = (long long)(cnt * (cnt - 1)) / 2;
  } else {
    ans = solve(0, 0, k);
  }
  cout << ans << '\n';
}
