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;
bool sortin(const pair<long long int, long long int> &e,
            const pair<long long int, long long int> &f) {
  return (e.first < f.first);
}
long long int i, j, k, l, m, n, c, p, q, ts, mn = 10e17;
long long int a[200002], b[200002], x[200002];
int main() {
  {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
  };
  cin >> n;
  cin >> m;
  l = n - m;
  string s, t, u, v;
  cin >> s;
  cin >> t;
  v = s;
  for (long long int i = 0; i <= n - 1; i++) u += 'a';
  for (long long int i = 0; i <= n - 1; i++) {
    if (!l) break;
    if (s[i] == t[i])
      u[i] = s[i], v[i] = '.', l--;
    else
      u[i] = 'a';
  }
  if (l) {
    for (long long int i = 0; i <= n - 1; i++) {
      if (v[i] == '.') continue;
      if (c % 2)
        u[i] = s[i], v[i] = '.';
      else
        u[i] = t[i], v[i] = '.';
      c++;
      if (c % 2 == 0) l--;
      if (!l) break;
    }
  }
  if (l) {
    cout << -1;
    return 0;
  }
  for (long long int i = 0; i <= n - 1; i++) {
    if (v[i] == '.') {
      if (s[i] != u[i]) p++;
      if (t[i] != u[i]) q++;
      continue;
    }
    if (s[i] == 'a') {
      u[i] = 'b';
      if (t[i] == 'b') u[i] = 'c';
    } else if (t[i] == 'a') {
      u[i] = 'b';
      if (s[i] == 'b') u[i] = 'c';
    }
    if (s[i] != u[i]) p++;
    if (t[i] != u[i]) q++;
  }
  if (p != m || q != m) {
    cout << -1;
    return 0;
  }
  cout << u;
}