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 JAVA):

Solution:
import java.io.OutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.StringTokenizer;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.InputStream;

/**
 * Built using CHelper plug-in
 * Actual solution is at the top
 *
 * @author Artem Gilmudinov
 */
public class Main {
    public static void main(String[] args) {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        Reader in = new Reader(inputStream);
        PrintWriter out = new PrintWriter(outputStream);
        TaskC solver = new TaskC();
        solver.solve(1, in, out);
        out.close();
    }

    static class TaskC {
        public void solve(int testNumber, Reader in, PrintWriter out) {
            int n, t;
            n = in.ni();
            t = in.ni();
            String s1, s2;
            s1 = in.rl();
            s2 = in.rl();
            int diff = 0;
            for (int i = 0; i < n; i++) {
                if (s1.charAt(i) != s2.charAt(i)) {
                    diff++;
                }
            }
            int same = n - diff;
            char[] ans = new char[n];
            Arrays.fill(ans, ' ');
            for (int i = 0; i <= diff; i++) {
                if ((diff - i) % 2 != 0) {
                    continue;
                }
                int need = i;
                int left = (diff - need) / 2;
                int total = need + left;
                if ((need + left <= t) && (need + left + same) >= t) {
                    for (int j = 0; j < n && need != 0; j++) {
                        if (s1.charAt(j) != s2.charAt(j)) {
                            ans[j] = find(s1.charAt(j), s2.charAt(j));
                            --need;
                        }
                    }
                    for (int j = 0; j < n; j++) {
                        if (s1.charAt(j) != s2.charAt(j) && ans[j] == ' ') {
                            if (need % 2 == 0) {
                                ans[j] = s2.charAt(j);
                            } else {
                                ans[j] = s1.charAt(j);
                            }
                            ++need;
                        }
                    }
                    t -= total;
                    for (int j = 0; j < n && t > 0; j++) {
                        if (ans[j] == ' ') {
                            ans[j] = find(s1.charAt(j), s2.charAt(j));
                            --t;
                        }
                    }
                    for (int j = 0; j < n; j++) {
                        if (ans[j] == ' ') {
                            ans[j] = s1.charAt(j);
                        }
                    }
                    out.println(new String(ans));
                    return;

                }
            }
            out.println(-1);
        }

        public char find(char ch1, char ch2) {
            for (int i = 'a'; i <= 'z'; i++) {
                if (i != ch1 && i != ch2) {
                    return (char) i;
                }
            }
            return ' ';
        }

    }

    static class Reader {
        private BufferedReader in;
        private StringTokenizer st = new StringTokenizer("");
        private String delim = " ";

        public Reader(InputStream in) {
            this.in = new BufferedReader(new InputStreamReader(in));
        }

        public String next() {
            if (!st.hasMoreTokens()) {
                st = new StringTokenizer(rl());
            }
            return st.nextToken(delim);
        }

        public String rl() {
            try {
                return in.readLine();
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }

        public int ni() {
            return Integer.parseInt(next());
        }

    }
}