#include <bits/stdc++.h>
using namespace std;
template <typename T>
bool chmax(T& a, const T& b) {
  return a < b ? (a = b, true) : false;
}
template <typename T>
bool chmin(T& a, const T& b) {
  return b < a ? (a = b, true) : false;
}
int N, K;
string S, T;
int main() {
  cin >> N >> K;
  cin >> S >> T;
  int P = 0, Q = 0;
  for (int i = (int)(0); i < (int)(N); i++) {
    if (S[i] != T[i])
      P++;
    else
      Q++;
  }
  if (((P + 1) / 2 <= K && K <= P + Q) == false) {
    cout << -1 << endl;
    return 0;
  }
  int x = max(0, P - K), y = max(0, P - K), z = max(0, K - P);
  string ans(N, '.');
  for (int i = (int)(0); i < (int)(N); i++) {
    if (S[i] != T[i]) {
      if (x) {
        ans[i] = T[i];
        x--;
      } else if (y) {
        ans[i] = S[i];
        y--;
      } else {
        if (S[i] != 'a' && T[i] != 'a') {
          ans[i] = 'a';
        } else if (S[i] != 'b' && T[i] != 'b') {
          ans[i] = 'b';
        } else {
          ans[i] = 'c';
        }
      }
    } else {
      if (z) {
        ans[i] = S[i] == 'a' ? 'b' : 'a';
        z--;
      } else {
        ans[i] = S[i];
      }
    }
  }
  cout << ans << endl;
  return 0;
}

### Prompt

Create a solution in Cpp for the following 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

### Response

```cpp
#include <bits/stdc++.h>
using namespace std;
template <typename T>
bool chmax(T& a, const T& b) {
  return a < b ? (a = b, true) : false;
}
template <typename T>
bool chmin(T& a, const T& b) {
  return b < a ? (a = b, true) : false;
}
int N, K;
string S, T;
int main() {
  cin >> N >> K;
  cin >> S >> T;
  int P = 0, Q = 0;
  for (int i = (int)(0); i < (int)(N); i++) {
    if (S[i] != T[i])
      P++;
    else
      Q++;
  }
  if (((P + 1) / 2 <= K && K <= P + Q) == false) {
    cout << -1 << endl;
    return 0;
  }
  int x = max(0, P - K), y = max(0, P - K), z = max(0, K - P);
  string ans(N, '.');
  for (int i = (int)(0); i < (int)(N); i++) {
    if (S[i] != T[i]) {
      if (x) {
        ans[i] = T[i];
        x--;
      } else if (y) {
        ans[i] = S[i];
        y--;
      } else {
        if (S[i] != 'a' && T[i] != 'a') {
          ans[i] = 'a';
        } else if (S[i] != 'b' && T[i] != 'b') {
          ans[i] = 'b';
        } else {
          ans[i] = 'c';
        }
      }
    } else {
      if (z) {
        ans[i] = S[i] == 'a' ? 'b' : 'a';
        z--;
      } else {
        ans[i] = S[i];
      }
    }
  }
  cout << ans << endl;
  return 0;
}

```