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.*;

public class Solution {

    static long mod =1000000007;
    public static void main(String[] args) throws IOException
    {
        BufferedReader br =new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st=new StringTokenizer(br.readLine());
        int n=Integer.parseInt(st.nextToken());
        int t=Integer.parseInt(st.nextToken());
        String s1=br.readLine();
        String s2=br.readLine();
        PrintWriter out =new PrintWriter(System.out);
        int [] ch =new int [n];
         int count=0;
        for(int i=0;i<n;i++)
        {
            if(s1.charAt(i)!=s2.charAt(i)){
                ch[i]=1;
                count++;
            }
        }
        if(t<(count+1)/2 ||t>n){out.println(-1);}
        else
        {
            char [] c=new char[n];
            if(t<=count)
            {
                int count1=0;int count2=0;
                int reach=count-t;
                for(int i=0;i<n;i++)
                {
                    if(s1.charAt(i)==s2.charAt(i))c[i]=s1.charAt(i);
                    else
                    {
                        if(reach>count1){c[i]=s1.charAt(i);count1++;}
                        else if(reach>count2){c[i]=s2.charAt(i);count2++;}
                        else
                        {
                            int a1=(int)(s1.charAt(i)-'a');
                            int a2=(int)(s2.charAt(i)-'a');
                            if(Math.abs(a1-a2)==1)c[i]=(char)(((Math.max(a1, a2)+1)%26)+97);
                            else c[i]=(char)(((a1+a2)/2)+97);
                        }
                    }
                }
            }
            if(t>count)
            {
                int reach=n-t;
                int count1=0;
                for(int i=0;i<n;i++)
                {
                    if((s1.charAt(i)==s2.charAt(i))&& reach>count1){c[i]=s1.charAt(i);count1++;}
                    else if(s1.charAt(i)==s2.charAt(i))
                    {
                        int a1=(int)(s1.charAt(i)-'a');
                         c[i]=(char)(((a1+1)%26)+97);
                    }
                    else
                    {
                        int a1=(int)(s1.charAt(i)-'a');
                            int a2=(int)(s2.charAt(i)-'a');
                            if(Math.abs(a1-a2)==1)c[i]=(char)(((Math.max(a1, a2)+1)%26)+97);
                            else c[i]=(char)(((a1+a2)/2)+97);
                    }
                }
            }
            out.println(String.valueOf(c));
        }
        
        
        out.close();
    }

}