#include <bits/stdc++.h>
using namespace std;
const long long maxn = 205;
long long dp[maxn][maxn][maxn];
long long n;
string s, t;
long long recur(long long pos, long long changes, long long sum) {
  if (pos == n) return 0;
  if (dp[pos][changes][sum] != -1) return dp[pos][changes][sum];
  long long res = recur(pos + 1, changes, sum);
  if (s[pos] == t[0]) res = max(res, recur(pos + 1, changes, sum + 1));
  if (s[pos] == t[1]) res = max(res, recur(pos + 1, changes, sum) + sum);
  if (s[pos] == t[0] && s[pos] == t[1])
    res = max(res, recur(pos + 1, changes, sum + 1) + sum);
  if (changes > 0) {
    res = max(res, recur(pos + 1, changes - 1, sum + 1));
    res = max(res, recur(pos + 1, changes - 1, sum) + sum);
    if (t[0] == t[1])
      res = max(res, recur(pos + 1, changes - 1, sum + 1) + sum);
  }
  dp[pos][changes][sum] = res;
  return res;
}
signed main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  for (long long i = 0; i < maxn; i++)
    for (long long j = 0; j < maxn; j++)
      for (long long k = 0; k < maxn; k++) dp[i][j][k] = -1;
  long long k;
  cin >> n >> k >> s >> t;
  long long res = recur(0, k, 0);
  cout << res << '\n';
}
