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.InputMismatchException;
import java.io.IOException;
import java.io.InputStream;

/**
 * Built using CHelper plug-in
 * Actual solution is at the top
 */
public class Main {
    public static void main(String[] args) {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        FastInputReader in = new FastInputReader(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, FastInputReader in, PrintWriter out) {
            int n = in.nextInt();
            int t = in.nextInt();
            char[] s1 = in.next(n);
            char[] s2 = in.next(n);
            char[] ans = new char[n];
            Arrays.fill(ans, '.');
            int e = n - t;
            for (int i = 0; i < n; i++) {
                if (s1[i] == s2[i] && e > 0) {
                    ans[i] = s1[i];
                    e--;
                }
            }
            int t1 = e;
            int t2 = e;
            for (int i = 0; i < n; i++) {
                if (ans[i] == '.') {
                    if (t1 > 0) {
                        ans[i] = s1[i];
                        t1--;
                    } else if (t2 > 0) {
                        ans[i] = s2[i];
                        t2--;
                    }
                }
            }
            if (t1 != 0 || t2 != 0) {
                out.println(-1);
                return;
            }
            for (int i = 0; i < n; i++) {
                if (ans[i] == '.') {
                    for (char c = 'a'; c <= 'z'; c++) {
                        if (c != s1[i] && c != s2[i]) {
                            ans[i] = c;
                            break;
                        }
                    }
                }
            }
            out.println(new String(ans));


        }

    }

    static class FastInputReader {
        static InputStream is;
        static private byte[] buffer;
        static private int lenbuf;
        static private int ptrbuf;

        public FastInputReader(InputStream stream) {
            is = stream;
            buffer = new byte[1024];
            lenbuf = 0;
            ptrbuf = 0;
        }

        private int readByte() {
            if (lenbuf == -1)
                throw new InputMismatchException();
            if (ptrbuf >= lenbuf) {
                ptrbuf = 0;
                try {
                    lenbuf = is.read(buffer);
                } catch (IOException e) {
                    throw new InputMismatchException();
                }
                if (lenbuf <= 0)
                    return -1;
            }
            return buffer[ptrbuf++];
        }

        private boolean isSpace(int c) {
            return !(c >= 33 && c <= 126);
        }

        private int read() {
            int b;
            while ((b = readByte()) != -1 && isSpace(b))
                ;
            return b;
        }

        public char[] next(int n) {
            char[] buf = new char[n];
            int b = read(), p = 0;
            while (p < n && !(isSpace(b))) {
                buf[p++] = (char) b;
                b = readByte();
            }
            return n == p ? buf : Arrays.copyOf(buf, p);
        }

        public int nextInt() {
            int num = 0, b;
            boolean minus = false;
            while ((b = readByte()) != -1 && !((b >= '0' && b <= '9') || b == '-'))
                ;
            if (b == '-') {
                minus = true;
                b = readByte();
            }

            while (true) {
                if (b >= '0' && b <= '9') {
                    num = num * 10 + (b - '0');
                } else {
                    return minus ? -num : num;
                }
                b = readByte();
            }
        }

    }
}