#include <bits/stdc++.h>
using namespace std;
char inp1[100005];
char inp2[100005];
char res[100005];
bool mk[100005];
bool mk1[100005];
char getDiff(char a, char b, char c) {
  for (int i = 0; i < 26; i++)
    if (a != ('a' + i) && b != ('a' + i) && c != ('a' + i)) return ('a' + i);
  return -1;
}
int main() {
  int n, t, s = 0;
  cin >> n >> t;
  cin >> inp1 >> inp2;
  memset(mk, 0, sizeof mk);
  memset(mk1, 0, sizeof mk1);
  for (int i = 0; i < n; i++)
    if (inp1[i] != inp2[i]) s++;
  res[n] = '\0';
  if (s > 2 * t) {
    cout << -1 << endl;
    return 0;
  }
  if (s <= 2 * t && s >= t) {
    int c = 0;
    for (int i = 0; i < n; i++)
      if (inp1[i] != inp2[i] && c < t) mk[i] = true, c++;
    c = 0;
    for (int i = n - 1; i >= 0; i--)
      if (inp1[i] != inp2[i] && c < t) mk1[i] = true, c++;
    for (int i = 0; i < n; i++) {
      if (mk[i] == true && mk1[i] == true)
        res[i] = getDiff(inp1[i], inp2[i], 0);
      else if (mk[i])
        res[i] = inp2[i];
      else if (mk1[i])
        res[i] = inp1[i];
      else
        res[i] = inp1[i];
    }
    cout << res << endl;
    return 0;
  }
  if (s < t) {
    int c = 0;
    for (int i = 0; i < n; i++) {
      if (inp1[i] != inp2[i]) res[i] = getDiff(inp1[i], inp2[i], 0), c++;
    }
    for (int i = 0; i < n; i++) {
      if (inp1[i] == inp2[i] && c < t)
        res[i] = getDiff(inp1[i], inp2[i], 0), c++;
      else if (inp1[i] == inp2[i])
        res[i] = inp1[i];
    }
    cout << res << endl;
  }
  return 0;
}
