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:
/* package whatever; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;

/* Name of the class has to be "Main" only if the class is public. */
public class Ideone
{
    
    public static char findDiffChar(char a, char b){
        if(a!='a'&&b!='a')  return 'a';
        if(a!='b'&&b!='b')  return 'b';
        if(a!='c'&&b!='c')  return 'c';
        return 'a';
    }
    public static void main (String[] args) throws java.lang.Exception
    {
        // your code goes here
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        PrintWriter pw = new PrintWriter(System.out);
        //pw.println(findDiffChar('a','x'));
        String temp[] = br.readLine().trim().split(" ");
        int n = Integer.parseInt(temp[0]);
        int d = Integer.parseInt(temp[1]);
        String astr = br.readLine().trim();
        String bstr = br.readLine().trim();
        char a[] = astr.toCharArray();
        char b[] = bstr.toCharArray();
        int chk[] = new int[n];
        Arrays.fill(chk,0);
        int same=0,ns=n-d;
        for(int i =0 ; i< n ; i++)
        {
            if(a[i]==b[i]){
                chk[i]=1;
                same++;
            }
        }
        if(same>ns){
            //use ns from same
            for(int i = 0 ; i< n ; i++){
                if(chk[i]==1 && ns>0){
                    //same
                    pw.print(a[i]);
                    ns--;
                }
                else{
                    //notsame
                    pw.print(findDiffChar(a[i],b[i]));
                }
            }
        }
        if(ns>same){
            //pw.println((ns-same)*2);
            //pw.println(n-same);
            if(((ns-same)*2)>(n-same))  pw.print(-1);
            else{
                int trig = 0;
                int cnt = 0;
                for(int i = 0 ; i< n ; i++){
                    if(chk[i]==1){
                        //same
                        pw.print(a[i]);
                    }
                    else{
                        //notsame
                        if(cnt<(2*(ns-same))){
                            if(trig==0) pw.print(a[i]);
                            if(trig==1) pw.print(b[i]);
                            cnt++;
                            trig=(trig==0)?1:0;
                        }
                        else{
                            pw.print(findDiffChar(a[i],b[i]));
                        }
                        
                        
                    }
                }
            }
        }
        if(same==ns){
            for(int i = 0 ; i< n ; i++){
                if(chk[i]==1){
                    //same
                    pw.print(a[i]);
                }
                else{
                    //notsame
                    pw.print(findDiffChar(a[i],b[i]));
                }
            }
        }
        pw.flush();
        
    }
}