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>
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;
}