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.InputStream;
import java.io.OutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.StringTokenizer;
import java.io.File;
import java.io.FileNotFoundException;

/**
 * Built using CHelper plug-in
 * Actual solution is at the top
 *
 * @author Kartik Singal (ka4tik)
 */
public class Main {
    public static void main(String[] args) {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        FastScanner in = new FastScanner(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, FastScanner in, PrintWriter out) {
            int n = in.nextInt();
            int k = in.nextInt();

            String a = in.next();
            String b = in.next();
            int x = 0, y = 0;
            for (int i = 0; i < n; i++) {
                if (a.charAt(i) == b.charAt(i))
                    x++;
                else
                    y++;
            }
            if (y > 2 * k)
                out.println("-1");
            else {

                char[] answer = new char[n];
                for (int i = 0; i < n; i++)
                    answer[i] = a.charAt(i);
                int rem1 = k;
                int rem2 = k;
                int t = 0;
                for (int i = 0; i < n; i++) {
                    if (a.charAt(i) != b.charAt(i)) {
                        if (t % 2 == 1) {
                            answer[i] = b.charAt(i);
                            rem2--;
                        } else
                            rem1--;

                        t++;
                        t %= 2;

                    }

                }
                t = 0;
                for (int i = 0; i < n; i++) {
                    if (rem1 == 0 && rem2 == 0)
                        break;
                    if (a.charAt(i) != b.charAt(i)) {
                        answer[i] = getDifferent(a.charAt(i), b.charAt(i));
                        if (t % 2 == 1)
                            rem1--;
                        else
                            rem2--;
                        t++;
                        t %= 2;

                    }

                }
                for (int i = 0; i < n; i++) {
                    if (rem1 == 0 && rem2 == 0)
                        break;
                    if (a.charAt(i) == b.charAt(i)) {
                        answer[i] = getDifferent(a.charAt(i), b.charAt(i));
                        rem1--;
                        rem2--;

                    }

                }
                if (!(rem1 == 0 && rem2 == 0))
                    throw new RuntimeException();
                StringBuilder sb = new StringBuilder();
                for (char anAnswer : answer) sb.append(anAnswer);
                out.println(sb.toString());
                if (differentCount(a, sb.toString()) != k)
                    throw new RuntimeException();
                if (differentCount(b, sb.toString()) != k)
                    throw new RuntimeException();

            }
        }

        private int differentCount(String a, String b) {
            int count = 0;
            for (int i = 0; i < a.length(); i++)
                if (a.charAt(i) != b.charAt(i))
                    count++;
            return count;
        }

        public char getDifferent(char a, char b) {
            for (char i = 'a'; i <= 'z'; i++) {
                if (a != i && b != i)
                    return i;
            }
            return 'a';
        }

    }

    static class FastScanner {
        BufferedReader br;
        StringTokenizer st;

        public FastScanner(File f) {
            try {
                br = new BufferedReader(new FileReader(f));
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
        }

        public FastScanner(InputStream f) {
            br = new BufferedReader(new InputStreamReader(f));
        }

        public String next() {
            while (st == null || !st.hasMoreTokens()) {
                String s = null;
                try {
                    s = br.readLine();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                if (s == null)
                    return null;
                st = new StringTokenizer(s);
            }
            return st.nextToken();
        }

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

    }
}