#include <bits/stdc++.h>
using namespace std;
vector<int> mil, omil;
int main() {
  int n, t;
  string a, b;
  char c[100010];
  cin >> n >> t;
  cin >> a;
  cin >> b;
  t = n - t;
  for (int i = 0; i < a.size(); i++) {
    if (a[i] == b[i])
      mil.push_back(i);
    else
      omil.push_back(i);
  }
  if (mil.size() < t) {
    t -= mil.size();
    if (omil.size() < (2 * t)) {
      puts("-1");
      return 0;
    }
    for (int i = 0; i < mil.size(); i++) c[mil[i]] = a[mil[i]];
    for (int i = 0; i < t; i++) c[omil[i]] = a[omil[i]];
    for (int i = t; i < 2 * t; i++) c[omil[i]] = b[omil[i]];
    for (int i = 2 * t; i < omil.size(); i++) {
      for (char ch = 'a'; ch <= 'z'; ch++) {
        if (ch != a[omil[i]] && ch != b[omil[i]]) {
          c[omil[i]] = ch;
          break;
        }
      }
    }
    puts(c);
    return 0;
  }
  for (int i = 0; i < t; i++) c[mil[i]] = a[mil[i]];
  for (int i = t; i < mil.size(); i++) {
    for (char ch = 'a'; ch <= 'z'; ch++) {
      if (ch != a[mil[i]] && ch != b[mil[i]]) {
        c[mil[i]] = ch;
        break;
      }
    }
  }
  for (int i = 0; i < omil.size(); i++) {
    for (char ch = 'a'; ch <= 'z'; ch++) {
      if (ch != a[omil[i]] && ch != b[omil[i]]) {
        c[omil[i]] = ch;
        break;
      }
    }
  }
  puts(c);
}
