#include <bits/stdc++.h>
using namespace std;
const long long inf = (long long)(1e9 + 17);
const long long mod = (long long)(1e9 + 7);
int n, k;
string s, t;
int dp[201][201][201];
int recurse(int idx, int tot, int ct) {
  if (tot > k) {
    return -inf;
  }
  if (idx == n) {
    if (tot > k) return -inf;
    return 0;
  }
  int &ans = dp[idx][tot][ct];
  if (ans != -1) {
    return ans;
  }
  ans = -inf;
  if (s[idx] != t[1] or s[idx] != t[0])
    ans = max(ans, recurse(idx + 1, tot, ct));
  ans = max(ans, recurse(idx + 1, tot + (s[idx] != t[0]), ct + 1));
  ans = max(ans,
            ct + recurse(idx + 1, tot + (s[idx] != t[1]), ct + (t[0] == t[1])));
  return ans;
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  cin >> n >> k;
  cin >> s >> t;
  memset(dp, -1, sizeof dp);
  int ans = recurse(0, 0, 0);
  cout << ans << "\n";
  return 0;
}
