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.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;


public class C {
	
	static class Scanner{
		BufferedReader br=null;
		StringTokenizer tk=null;
		public Scanner(){
			br=new BufferedReader(new InputStreamReader(System.in));
		}
		public String next() throws IOException{
			while(tk==null || !tk.hasMoreTokens())
				tk=new StringTokenizer(br.readLine());
			return tk.nextToken();
		}
		public int nextInt() throws NumberFormatException, IOException{
			return Integer.valueOf(next());
		}
		public long nextLong() throws NumberFormatException, IOException{
			return Long.valueOf(next());
		}
		public double nextDouble() throws NumberFormatException, IOException{
			return Double.valueOf(next());
		}
	}
	
	static char dc(char a, char b) {
		for(int i = 0; i < 26; i++) {
			char current = (char)('a' + i);
			if (current != a && current != b)
				return current;
		}
		return 0;
	}
	
	static char[] a, b;
	
	public static void main(String args[]) throws NumberFormatException, IOException {
		Scanner sc = new Scanner();
		int N = sc.nextInt();
		int t = sc.nextInt();
		a = sc.next().toCharArray();
		b = sc.next().toCharArray();
		int diff = 0;
		for(int i = 0; i < N; i++)
			if (a[i] != b[i])
				diff++;
		int minSum = diff - (diff / 2);
		if (t < minSum) {
			System.out.println("-1");
			return;
		}
		int maxSumDif = diff;
		if (t >= maxSumDif) {
			char[] ans = a.clone();
			for(int i = 0; i < a.length; i++)
				if (a[i] != b[i])
					ans[i] = dc(a[i], b[i]);
			t -= maxSumDif;
			for(int i = 0; i < a.length && t > 0; i++)
				if (a[i] == b[i]) {
					ans[i] = dc(a[i], b[i]);
					t--;
				}
			System.out.println(new String(ans));
			return;
		}
		// remaining case
		int left = diff / 2;
		int right = diff - left;
		int both = 0;
		if (left < right) {
			right--;
			both++;
		}
		t -= (left + both);
		while(t > 0) {
			if (left > 0 && right > 0) {
				left--;
				right--;
				both += 2;
				t--;
			}
			else {
				System.out.println("-1");
				return;
			}
		}
		char[] ans = a.clone();
		for(int i = 0; i < a.length; i++) {
			if (a[i] != b[i]) {
				if (left > 0) {
					ans[i] = b[i];
					left--;
				}
				else if (right > 0){
					ans[i] = a[i];
					right--;
				}
				else if (both > 0) {
					ans[i] = dc(a[i], b[i]);
					both--;
				}
			}
		}
		System.out.println(new String(ans));
		
	}

}