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:102400000,102400000")
using namespace std;
template <class T, class U>
inline void Max(T &a, U b) {
  if (a < b) a = b;
}
template <class T, class U>
inline void Min(T &a, U b) {
  if (a > b) a = b;
}
char s[100005], t[100005], sa[100005], sb[100005];
int main() {
  int T, i, j, k, m, n;
  scanf("%d%d%s%s", &n, &m, s, t);
  int a = 0, flag = 0;
  for (i = 0; i < n; i++)
    if (s[i] == t[i]) a++;
  int b = n - a;
  for (i = b & 1; i <= b; i += 2) {
    int second = (b + i) / 2;
    if (second > m) break;
    int first = m - second;
    if (first <= a) {
      flag = 1;
      int second = i, z = (b - i) / 2;
      for (j = 0; j < n; j++) {
        if (s[j] == t[j]) {
          if (first) {
            k = s[j] - 'a' - 1;
            if (k < 0) k = 25;
            sa[j] = k + 'a';
            first--;
          } else
            sa[j] = s[j];
        } else {
          if (second) {
            for (char c = 'a'; c <= 'z'; c++)
              if (c != s[j] && c != t[j]) {
                sa[j] = c;
                break;
              }
            second--;
          } else if (z) {
            sa[j] = s[j];
            z--;
          } else
            sa[j] = t[j];
        }
      }
      break;
    }
  }
  if (!flag)
    puts("-1");
  else
    sa[n] = 0, printf("%s\n", sa);
  return 0;
}