#include <bits/stdc++.h>
using namespace std;
int N, T;
char A[114514];
char B[114514];
int main() {
  scanf("%d%d", &N, &T);
  scanf("%s%s", &A, &B);
  int sm = 0;
  for (int(i) = 0; (i) < (N); (i)++)
    if (A[i] == B[i]) sm++;
  T = N - T;
  int mi = 0, ma = sm + (N - sm) / 2;
  if (T < mi || ma < T) return puts("-1"), 0;
  int p1 = min(sm, T) + max(0, T - sm);
  int p2 = min(sm, T) + max(0, T - sm);
  for (int(i) = 0; (i) < (N); (i)++) {
    if (A[i] == B[i] && p1 > 0 && p2 > 0)
      putchar(A[i]), p1--, p2--;
    else if (p1 > sm && A[i] != B[i])
      putchar(A[i]), p1--;
    else if (p2 > sm && A[i] != B[i])
      putchar(B[i]), p2--;
    else {
      char tt = 'a';
      for (int(j) = ('a'); (j) < ('a' + 26); (j)++)
        if (A[i] != j && B[i] != j) tt = j;
      putchar(tt);
    }
    if (A[i] == B[i]) sm--;
  }
  puts("");
}

### 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;
int N, T;
char A[114514];
char B[114514];
int main() {
  scanf("%d%d", &N, &T);
  scanf("%s%s", &A, &B);
  int sm = 0;
  for (int(i) = 0; (i) < (N); (i)++)
    if (A[i] == B[i]) sm++;
  T = N - T;
  int mi = 0, ma = sm + (N - sm) / 2;
  if (T < mi || ma < T) return puts("-1"), 0;
  int p1 = min(sm, T) + max(0, T - sm);
  int p2 = min(sm, T) + max(0, T - sm);
  for (int(i) = 0; (i) < (N); (i)++) {
    if (A[i] == B[i] && p1 > 0 && p2 > 0)
      putchar(A[i]), p1--, p2--;
    else if (p1 > sm && A[i] != B[i])
      putchar(A[i]), p1--;
    else if (p2 > sm && A[i] != B[i])
      putchar(B[i]), p2--;
    else {
      char tt = 'a';
      for (int(j) = ('a'); (j) < ('a' + 26); (j)++)
        if (A[i] != j && B[i] != j) tt = j;
      putchar(tt);
    }
    if (A[i] == B[i]) sm--;
  }
  puts("");
}

```