#include <bits/stdc++.h>
using namespace std;
const long long maxn = 5e5 + 50;
char s[maxn], t[maxn];
int main() {
  long long i, j, k, n, m, ans, res, same1, same2;
  long long kick_out;
  scanf("%lld%lld", &n, &m);
  scanf(" %s", s);
  scanf(" %s", t);
  ans = 0;
  res = 1;
  same1 = 1;
  same2 = 1;
  kick_out = 0;
  bool flag = false;
  for (i = 0; i < n; i++) {
    if (s[i] == t[i]) {
      if ((res - same2) * 2 + same2 <= m) {
        ans = ans + (res - same2) * 2 + same2;
        res = (res - same2) * 2 + same2;
      } else {
        if ((res - same2) * 2 + same2 == m + 1) {
          res = m;
          same2 = 0;
          ans = ans + res;
        } else {
          same2 = 0;
          same1 = 0;
          res = m;
          ans = ans + res;
        }
      }
    } else {
      if (s[i] == 'a' && t[i] == 'b') {
        if (res * 2 <= m) {
          ans = ans + res * 2;
          res = res * 2;
        } else {
          if (res * 2 >= m + 2) {
            same1 = 0;
            same2 = 0;
            kick_out = 2;
            ans = ans + m;
            res = m;
          } else {
            same2 = 0;
            res = m;
            ans = ans + m;
          }
        }
      } else {
        if ((res - same1 - same2) * 2 + same1 + same2 <= m) {
          res = (res - same1 - same2) * 2 + same1 + same2;
          ans = ans + res;
        } else if ((res - same1 - same2) * 2 + same1 + same2 >= m + 2) {
          res = m;
          same1 = 0;
          same2 = 0;
          ans = ans + res;
        } else {
          res = m;
          same2 = 0;
          ans = ans + (res - same1) * 2 + same1;
        }
      }
    }
  }
  printf("%lld\n", ans);
}
