Problem: Marina loves strings of the same length and Vasya loves when there is a third string, different from them in exactly t characters. Help Vasya find at least one such string.

More formally, you are given two strings s1, s2 of length n and number t. Let's denote as f(a, b) the number of characters in which strings a and b are different. Then your task will be to find any string s3 of length n, such that f(s1, s3) = f(s2, s3) = t. If there is no such string, print  - 1.

Input

The first line contains two integers n and t (1 ≤ n ≤ 105, 0 ≤ t ≤ n).

The second line contains string s1 of length n, consisting of lowercase English letters.

The third line contain string s2 of length n, consisting of lowercase English letters.

Output

Print a string of length n, differing from string s1 and from s2 in exactly t characters. Your string should consist only from lowercase English letters. If such string doesn't exist, print -1.

Examples

Input

3 2
abc
xyc


Output

ayd

Input

1 0
c
b


Output

-1

Solution (in CPP):

Solution:
#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:16777216")
using namespace std;
long long gcsd(long long a, long long b) {
  while (a && b)
    if (a >= b)
      a %= b;
    else
      b %= a;
  return a | b;
}
struct comparator {
  bool operator()(const int& x, const int& y) const { return x % 10 < y % 10; }
};
char nott(char& a, char& b) {
  int am = a == 'a' ? 'z' : a - 1;
  int bm = b == 'a' ? 'z' : b - 1;
  int an = a == 'z' ? 'a' : a + 1;
  int bn = b == 'z' ? 'a' : b + 1;
  if (am == b) return an;
  if (bm == a) return bn;
  return am;
}
int main() {
  iostream::sync_with_stdio(0);
  int n, t;
  cin >> n >> t;
  string a, b;
  cin >> a >> b;
  string c;
  vector<int> empt;
  for (int(i) = (0); (i) < (int((a).size())); (i)++) {
    if (a[i] == b[i])
      c.push_back((a[i]));
    else {
      c.push_back((nott(a[i], b[i])));
      empt.push_back((i));
    }
  }
  if (int((empt).size()) != t) {
    if (int((empt).size()) > t) {
      int fa, fb;
      fa = fb = int((empt).size());
      fa--;
      c[empt[0]] = a[empt[0]];
      for (int(i) = (1); (i) < (int((empt).size())); (i)++) {
        int j = empt[i];
        if (fa > fb) {
          fa--;
          c[j] = a[j];
        } else {
          fb--;
          c[j] = b[j];
        }
        if (fa == fb && fa == t) break;
      }
      if (fa != fb || fa != t) {
        cout << -1;
        return 0;
      }
    } else {
      int x = int((empt).size());
      int j = 0, i = 0;
      while (x != t) {
        if (a[j] == b[j]) {
          c[j] = nott(a[j], b[j]);
          x++;
        }
        j++;
      }
    }
  }
  cout << c;
  return 0;
}