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.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.InputMismatchException;

public class Main 
{
	class MyScanner
	{
	    private byte[] buf = new byte[1024];
	    private int curChar;
	    private int numChars;
	    BufferedInputStream bis = new BufferedInputStream(System.in);

	    public int read() 
	    {
	        if (-1 == numChars)
	        {
	        	throw new InputMismatchException();
	        }
	        if (curChar >= numChars)
	        {
	            curChar = 0;
	            try 
	            {
	                numChars = System.in.read(buf);
	            }
	            catch (IOException e)
	            {
	                throw new InputMismatchException();
	            }
	            if (numChars <= 0)
	            {
	            	return -1;
	            }
	        }
	        return buf[curChar++];
	    }

	    public String next()
	    {
	        int c = read();
	        while (isSpaceChar(c))
	        {
	        	c = read();
	        }
	        StringBuilder res = new StringBuilder();
	        do 
	        {
	            res.appendCodePoint(c);
	            c = read();
	        } while (!isSpaceChar(c));
	        return res.toString();
	    }
	    
	    public int nextInt() 
	    {
	        int c = read();
	        while (isSpaceChar(c))
	        {
	        	c = read();
	        }
	        int sgn = 1;
	        if (c == '-') 
	        {
	            sgn = -1;
	            c = read();
	        }
	        int res = 0;
	        do 
	        {
	            if (c < '0' || c > '9')
	            {
	            	throw new InputMismatchException();
	            }
	            res *= 10;
	            res += c - '0';
	            c = read();
	        } while (!isSpaceChar(c));
	        return res * sgn;
	    }

	    private boolean isSpaceChar(int c) 
	    {
	        return ' ' == c || '\n' == c || '\r' == c || '\t' == c || -1 == c;
	    }
	}
	
	public char getDifferentForOne(char c)
	{
		return c != 'a' ? 'a' : 'b';
	}
	
	public char getDifferentForTwo(char c1, char c2)
	{
		for(char c = 'a';c <= 'z';++c)
		{
			if(c != c1 && c != c2)
			{
				return c;
			}
		}
		return 'a';
	}
	
	public void foo() throws IOException
	{
		//BufferedInputStream in = new BufferedInputStream(new FileInputStream("in.txt"));
	//	System.setIn(in);
		
		MyScanner scan = new MyScanner();
		int n = scan.nextInt();
		int t = scan.nextInt();
		
		char[][] s = new char[2][n];
		s[0] = scan.next().toCharArray();
		s[1] = scan.next().toCharArray();
		
		int diffCnt = 0;
		for(int i = 0;i < n;++i)
		{
			if(s[0][i] != s[1][i])
			{
				++diffCnt;
			}
		}

		if(t < (diffCnt + 1) / 2)
		{
			System.out.println("-1");
		}
		else
		{
			StringBuilder str = new StringBuilder();
			char c0 = 0;
			char c1 = 0;
			if(t > diffCnt)
			{
				int diffForSame = t - diffCnt;
				for(int i = 0;i < n;++i)
				{
					c0 = s[0][i];
					c1 = s[1][i];
					if(c0 == c1)
					{
						if(diffForSame > 0)
						{
							str.append(getDifferentForOne(c0));
							--diffForSame;
						}
						else
						{
							str.append(c0);
						}
					}
					else
					{
						str.append(getDifferentForTwo(c0, c1));
					}
				}
			}
			else
			{
				int diffForOne = 2 * (diffCnt - t);
				int index = 0;
				for(int i = 0;i < n;++i)
				{
					c0 = s[0][i];
					c1 = s[1][i];
					if(c0 == c1)
					{
						str.append(c0);
					}
					else 
					{
						if(diffForOne > 0)
						{
							str.append(s[index][i]);
							--diffForOne;
							index = 1 - index;
						}
						else
						{
							str.append(getDifferentForTwo(c0, c1));
						}
					}
				}
			}
			
			System.out.println(str);
		}
	}
	
	public static void main(String[] args) throws IOException
	{
		new Main().foo();
	}
}