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 C324C
{

private static StringTokenizer st;
    
    public static void nextLine(BufferedReader br) throws IOException
    {
        st = new StringTokenizer(br.readLine());
    }
    
    public static int nextInt()
    {
        return Integer.parseInt(st.nextToken());
    }
    
    public static String next()
    {
        return st.nextToken();
    }
    
    public static long nextLong()
    {
        return Long.parseLong(st.nextToken());
    }

    public static double nextDouble()
    {
        return Double.parseDouble(st.nextToken());
    }
    
    public static void main(String[] args) throws IOException
    {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        nextLine(br);
        int n = nextInt();
        int t = nextInt();
        nextLine(br);
        String s1 = next();
        nextLine(br);
        String s2 = next();
        int same = 0;
        for (int i = 0; i < n; i++)
        {
            if (s1.charAt(i) == s2.charAt(i))
            {
                same++;
            }
        }
        
        if (t*2 < (n-same))
        {
            System.out.println(-1);
            return;
        }
        int diff = n - same;
        StringBuffer sb = new StringBuffer();
        if (t <= diff)
        {
            int used = 0;
            int remdiff = diff;
            for (int i = 0; i < n; i++)
            {
                char q1 = s1.charAt(i);
                char q2 = s2.charAt(i);
                if (q1 == q2)
                {
                    sb.append(q1);
                }
                else 
                {
                    if (used < (diff - t))
                    {
                        sb.append(q1);
                    }
                    else if (remdiff <= (diff - t))
                    {
                        sb.append(q2);
                    }
                    else
                    {
                        sb.append(pickLetter(q1, q2));
                    }
                    used++;
                    remdiff--;
                }
            }
        }
        else
        {
            int used = 0;
            for (int i = 0; i < n; i++)
            {
                char q1 = s1.charAt(i);
                char q2 = s2.charAt(i);
                if (q1 == q2)
                {
                    if (used < (n - t))
                    {
                        sb.append(q1);
                    }
                    else
                    {
                        sb.append(pickLetter(q1, q2));
                    }
                    used++;
                }
                else
                {
                    sb.append(pickLetter(q1, q2));
                }
            }
        }
        System.out.println(sb.toString());
    }
    
    public static char pickLetter(char a, char b)
    {
        char q = 'a';
        while (q == a || q == b) q++;
        return q;
    }

}