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;
long long n, m, s, p[100005];
char a[100005], b[100005], c[100005];
signed main() {
  scanf("%lld%lld%s%s", &n, &m, a + 1, b + 1);
  for (long long i = 1; i <= n; i++)
    if (a[i] != b[i]) p[++s] = i;
  if (m < (s + 1) / 2) return puts("-1"), 0;
  if (m >= s) {
    for (long long i = 1; i <= s; i++)
      for (char j = 'a'; j <= 'z'; j++)
        if (j != a[p[i]] && j != b[p[i]]) c[p[i]] = j;
    m -= s, s = 0;
    for (long long i = 1; i <= n; i++) {
      if (c[i] > 0) continue;
      s++;
      if (s <= m) {
        for (char j = 'a'; j <= 'z'; j++)
          if (j != a[i] && j != b[i]) c[i] = j;
      } else
        c[i] = a[i];
    }
  } else {
    long long cnt = s - m;
    for (long long i = 1; i <= cnt * 2; i++)
      c[p[i]] = (i & 1 ? a[p[i]] : b[p[i]]);
    for (long long i = cnt * 2 + 1; i <= s; i++)
      for (char j = 'a'; j <= 'z'; j++)
        if (j != a[p[i]] && j != b[p[i]]) c[p[i]] = j;
    for (long long i = 1; i <= n; i++)
      if (!c[i]) c[i] = a[i];
  }
  for (long long i = 1; i <= n; i++) cout << c[i];
  return puts(""), 0;
}