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.*;
import java.util.*;
import java.math.BigInteger;
/*
 * This file was created by ayush in attempt to solve the problem problems
 */
public class main {
    public char getExclusiveChar(char a,char b){
    	for(char i='a';i<='z';i++){
		if(i!=a && i!=b){
			return i;
		}
	}
	return 'a';
    }
    public void solve(String a,String b,int t,int n, PrintWriter out) {
	int diff1=0;
	int diff2=0;
	int k=n-t;
	int q=0;
	//StringBuilder ans=new StringBuilder("");
	for(int i=0;i<n;i++){
		if(a.charAt(i)==b.charAt(i)){
			q++;
		}
	}
	StringBuilder ans=new StringBuilder("");
	if(k<=q){
		
		int rem=q-k;
		for(int i=0;i<n;i++){
			if(a.charAt(i)==b.charAt(i)){
				if(rem-->=1){
					ans.append(""+getExclusiveChar(a.charAt(i),b.charAt(i)));	
				}else{
					ans.append(""+a.charAt(i));
				}
			}else{
			ans.append("" +getExclusiveChar(a.charAt(i),b.charAt(i)));
			}
		}
	
	}else if(k>q){

		int rem=k-q;
		if(n-q<2*(k-q)){
			out.println(-1);
			return;
		}
		int i=0;
		int tmp=0;
		int cond=rem;
		for( i=0;i<cond;i++){
			if(a.charAt(i)==b.charAt(i)){
				cond++;
		
			}
			ans.append(""+a.charAt(i));
			
			
		}
		tmp=i;
		cond=rem+tmp;
		for(;i<cond;i++){
			if(a.charAt(i)==b.charAt(i)){
				cond++;
			}
			ans.append(""+b.charAt(i));
			
		}
		tmp=i;
		for(;i<n;i++){
			if(a.charAt(i)==b.charAt(i)){
				ans.append(a.charAt(i));
			}else{
			ans.append(""+getExclusiveChar(a.charAt(i),b.charAt(i)));
			}
		}
		
	}

//	if(diff1!=diff2 || diff1!=n-t){
//		out.println(-1);

//	}else{
		out.println(ans);
//	}
    }

    public static void main(String[] args) throws Exception {
	
        FastScanner in = new FastScanner(System.in);
        PrintWriter out = new PrintWriter(System.out);
        int n = in.nextInt();
	int t = in.nextInt();
	String a=in.next();
	String b=in.next();
        Date t1 = new Date();
        main solver = new main();
	
        solver.solve(a,b,t,n, out);
        out.flush();
	
        Date t2 = new Date();
        System.err.println(String.format("Your program took %f seconds", (t2.getTime() - t1.getTime()) / 1000.0));
        out.close();
	
		
	
    }
    static class FastScanner {

    private static BufferedReader reader;
    private static StringTokenizer tokenizer;


    public FastScanner(InputStream in) throws Exception {
        reader = new BufferedReader(new InputStreamReader(in));
        tokenizer = new StringTokenizer(reader.readLine().trim());
    }

    public int numTokens() throws Exception {
        if (!tokenizer.hasMoreTokens()) {
            tokenizer = new StringTokenizer(reader.readLine().trim());
            return numTokens();
        }
        return tokenizer.countTokens();
    }

    public boolean hasNext() throws Exception {
        if (!tokenizer.hasMoreTokens()) {
            tokenizer = new StringTokenizer(reader.readLine().trim());
            return hasNext();
        }
        return true;
    }

    public String next() throws Exception {
        if (!tokenizer.hasMoreTokens()) {
            tokenizer = new StringTokenizer(reader.readLine().trim());
            return next();
        }
        return tokenizer.nextToken();
    }

    public double nextDouble() throws Exception {
        return Double.parseDouble(next());
    }

    public float nextFloat() throws Exception {
        return Float.parseFloat(next());
    }

    public long nextLong() throws Exception {
        return Long.parseLong(next());
    }

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

    public int[] nextIntArray() throws Exception {
        String[] line = reader.readLine().trim().split(" ");
        int[] out = new int[line.length];
        for (int i = 0; i < line.length; i++) {
            out[i] = Integer.valueOf(line[i]);
        }
        return out;
    }

    public double[] nextDoubleArray() throws Exception {
        String[] line = reader.readLine().trim().split(" ");
        double[] out = new double[line.length];
        for (int i = 0; i < line.length; i++) {
            out[i] = Double.valueOf(line[i]);
        }
        return out;
    }

    public Integer[] nextIntegerArray() throws Exception {
        String[] line = reader.readLine().trim().split(" ");
        Integer[] out = new Integer[line.length];
        for (int i = 0; i < line.length; i++) {
            out[i] = Integer.valueOf(line[i]);
        }
        return out;
    }

    public BigInteger[] nextBigIngtegerArray() throws Exception {
        String[] line = reader.readLine().trim().split(" ");
        BigInteger[] out = new BigInteger[line.length];
        for (int i = 0; i < line.length; i++) {
            out[i] = new BigInteger(line[i]);
        }
        return out;
    }

    public String nextLine() throws Exception {
        return reader.readLine().trim();
    }

    public BigInteger nextBigInteger() throws Exception {
        return new BigInteger(next());
    }
    }


   


    static class DEBUG {
        public static void DebugInfo(String disp) {
            System.err.println("DEBUG Info: " + disp);
        }

        public static void DebugVariable(String variable, String value) {
            System.err.println("DEBUG Info: " + variable + " => " + value);
        }


        public static void DebugVariable(String variable, int value) {
            System.err.println("DEBUG Info: " + variable + " => " + value);
        }


        public static void DebugVariable(String variable, long value) {
            System.err.println("DEBUG Info: " + variable + " => " + value);
        }

        public static void DebugArray(int[] value) {
            for (int i = 0; i < value.length; i++) {

                System.err.println("DEBUG Info: " + i + " => " + value[i]);
            }
        }

    }

}