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

/**
 * 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;
		InputReader in = new InputReader(inputStream);
		PrintWriter out = new PrintWriter(outputStream);
		TaskC solver = new TaskC();
		solver.solve(1, in, out);
		out.close();
	}
}

class TaskC {
    public void solve(int testNumber, InputReader in, PrintWriter out) {
        int n = in.nextInt();
        int t = in.nextInt();

        String s1 = null;

        while (s1 == null || s1.equals("")){
            s1 = in.nextLine();
        }

        String s2 = null;

        while (s2 == null || s2.equals("")){
            s2 = in.nextLine();
        }

        String sol = solve(n, n-t, s1, s2);

        if (sol == null){
            out.println(-1);
        } else {
            out.println(sol);
        }

    }

    private String solve(int n, int k, String s1, String s2) {
        char[] sol = new char[n];
        Arrays.fill(sol, (char)0);

        int sameNr = countSame(s1, s2);

        int sameToDo = Math.min(sameNr, k);

        for (int i=0; i<n; i++){
            if (s1.charAt(i) == s2.charAt(i)){
                if (sameToDo > 0){
                    sol[i] = s1.charAt(i);
                    sameToDo--;
                } else {
                    sol[i] = findDiff(s1.charAt(i), s2.charAt(i));
                }
            }
        }

        if (k > sameNr && (n-sameNr) / 2 < k-sameNr){
            return null;
        }

        int diffToDo1 = k - sameNr;
        int diffToDo2 = k - sameNr;

        for (int i=0; i<n; i++){
            if (sol[i] == 0){
                if (diffToDo1 > 0){
                    sol[i] = s1.charAt(i);
                    diffToDo1--;
                } else if (diffToDo2 > 0){
                    sol[i] = s2.charAt(i);
                    diffToDo2--;
                } else {
                    sol[i] = findDiff(s1.charAt(i), s2.charAt(i));
                }
            }
        }

        return new String(sol);
    }

    private char findDiff(char c, char c1) {

        if (c != 'a' && c1 != 'a'){
            return 'a';
        }

        if (c != 'b' && c1 != 'b'){
            return 'b';
        }

        return 'c';
    }

    private int countSame(String s1, String s2) {
        int s = 0;

        for (int i=0; i <s1.length(); i++){
            if (s1.charAt(i) == s2.charAt(i)){
                s++;
            }
        }

        return s;
    }
}

class InputReader {
    public BufferedReader reader;
    public StringTokenizer tokenizer;


    public InputReader(InputStream stream){
        reader = new BufferedReader(new InputStreamReader(stream));
    }

    public String next(){
        while (tokenizer == null || !tokenizer.hasMoreTokens()){
            try {
                tokenizer = new StringTokenizer(reader.readLine());
            } catch (IOException e) {
                throw new RuntimeException("FATAL ERROR", e);
            }
        }

        return tokenizer.nextToken();
    }
	
	public String nextLine(){
		try{
			return reader.readLine();
		} catch(IOException e){
			throw new RuntimeException("ERROR", e);
		}
	}

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

}