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.util.Scanner;

public class MarinaAndVasya
{
	public static void main(String[] args)
	{
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int t = sc.nextInt();
		char[] a = sc.next().toCharArray();
		char[] b = sc.next().toCharArray();
		char[] letters = {'a','b','c'};
		
		int d = 0;
		for (int i = 0; i < b.length; i++)
		{
			if(a[i] != b[i])
				d++;
		}
		
		StringBuilder out = new StringBuilder("");
		if(d<=t)
		{
			int rem = t-d;
			for (int i = 0; i < b.length; i++)
			{
				if(a[i] == b[i])
				{
					if(rem > 0)
					{
						for (int j = 0; j < letters.length; j++)
						{
							if(letters[j] != a[i] && letters[j] != b[i])
							{
								out.append("" + letters[j]);
								break;
							}
						}
						rem--;
					}
					else
					{
						out.append("" + a[i]);
					}
				}
				else
				{
					for (int j = 0; j < letters.length; j++)
					{
						if(letters[j] != a[i] && letters[j] != b[i])
						{
							out.append("" + letters[j]);
							break;
						}
					}
				}
			}
			
			System.out.println(out);
		}
		else
		{
			if(Math.ceil(1.0*d/2) > t)
			{
				System.out.println(-1);
				return;
			}
			else
			{
				int y = d-t;
				int ad = 0;
				int bd = 0;
				
				for (int i = 0; i < a.length; i++)
				{
					if(a[i] == b[i])
						out.append("" + a[i]);
					else
					{
						if(ad < y)
						{
							out.append("" + a[i]);
							ad++;
						}
						else
						{
							if(bd < y)
							{
								out.append("" + b[i]);
								bd++;
							}
							else
							{
								for (int j = 0; j < letters.length; j++)
								{
									if(letters[j] != a[i] && letters[j] != b[i])
									{
										out.append("" + letters[j]);
										break;
									}
								}
							}
						}
					}
				}
			}
			
			int d1 = 0;
			int d2 = 0;
			char[] c = out.toString().toCharArray();
			for (int i = 0; i < a.length; i++)
			{
				if(a[i] != c[i])
					d1 ++;
				if(b[i] != c[i])
					d2++;
			}
			
			if(d1 == t && d2 == t)
				System.out.println(out);
			else
				System.out.println(-1);
		}
	}
}