#include <bits/stdc++.h>
using namespace std;
const int NMAX = 100005;
int n, t;
char a[NMAX], b[NMAX], c[NMAX];
vector<int> ones, dois;
char Dif(int poz) {
  char C;
  C = 'a';
  while (C == a[poz] || C == b[poz]) C++;
  return C;
}
int main() {
  int i, j, len;
  bool ok;
  cin.sync_with_stdio(false);
  cin >> n >> t;
  cin >> (a + 1) >> (b + 1);
  for (i = 1; i <= n; i++)
    if (a[i] != b[i])
      ones.push_back(i);
    else
      dois.push_back(i);
  len = ones.size();
  if (ones.size()) ok = 0;
  for (i = len; i >= 0 && !ok; i--)
    if ((len - i) % 2 == 0 && (i + (len - i) / 2) <= t) {
      ok = 1;
      for (j = 0; j < i; j++) c[ones[j]] = Dif(ones[j]);
      for (j = i; j < len; j++)
        if (j % 2 == 0)
          c[ones[j]] = b[ones[j]];
        else
          c[ones[j]] = a[ones[j]];
      t -= i + (len - i) / 2;
    }
  if (ok == 0) {
    cout << "-1\n";
    return 0;
  }
  len = dois.size();
  if (len < t) {
    cout << "-1\n";
    return 0;
  } else {
    for (j = 0; j < t; j++) c[dois[j]] = Dif(dois[j]);
    for (j = t; j < len; j++) c[dois[j]] = a[dois[j]];
  }
  cout << (c + 1) << "\n";
  return 0;
}
