#include <bits/stdc++.h>
using namespace std;
long long n, k;
string s, t;
long long dp[205][205][205];
long long solve(long long pos, long long k, long long first) {
  if (pos >= n) {
    return 0;
  }
  long long &ans = dp[pos][k][first];
  if (ans != -1) return ans;
  ans = solve(pos + 1, k, (s[pos] == t[0]) + first);
  long long c = (s[pos] == t[0] ? 0 : 1);
  if (k >= c) ans = max(ans, solve(pos + 1, k - c, first + 1));
  long long c2 = (s[pos] == t[1] ? 0 : 1);
  if (k >= c2) ans = max(ans, first + solve(pos + 1, k - c2, first));
  return ans;
}
int32_t main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> n >> k;
  cin >> s >> t;
  memset(dp, -1, sizeof dp);
  long long answer = 0;
  if (t[0] == t[1]) {
    long long cnt = 0;
    for (long long i = 0; i < n; i++) {
      if (s[i] == t[0]) cnt++;
    }
    cnt = min(cnt + k, n);
    answer = max(answer, (cnt * (cnt - 1)) / 2);
  } else
    answer = solve(0, k, 0);
  cout << answer << "\n";
  return 0;
}
