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

    public static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    public static StringTokenizer tok;

    public static int nextInt() throws IOException {
        return Integer.parseInt(nextToken());
    }

    public static long nextLong() throws IOException {
        return Long.parseLong(nextToken());
    }

    public static double nextDouble() throws IOException {
        return Double.parseDouble(nextToken());
    }

    public static String nextToken() throws IOException {
        if (tok == null || !tok.hasMoreTokens()) {
            tok = new StringTokenizer(in.readLine());
        }
        return tok.nextToken();
    }

	public static char diff(char a, char b) {
		if (a != 'a' && b != 'a') return 'a';
		if (a != 'b' && b != 'b') return 'b';
		return 'c';
	}

    public static void main(String[] args) throws IOException {
		int n = nextInt();
		int t = nextInt();
		String s1 = nextToken();
		String s2 = nextToken();

		int k = 0;
		for (int i = 0; i < n; i++) {
			if (s1.charAt(i) == s2.charAt(i)) k++;
		}
		if (n - k > 2 * t) {
			System.out.println(-1);
			return;
		}

		if (n - k > t && n - k <= 2 * t) {
			int counter = 0;
			for (int i = 0; i < n; i++) {
				char a = s1.charAt(i);
				char b = s2.charAt(i);
				if (a == b) {
					System.out.print(a);
				} else {
					if (counter < n - k - t) {
						System.out.print(b);
					} else if (counter < t) {
						System.out.print(diff(a, b));
					} else {
						System.out.print(a);
					}
					counter++;
				}
			}
		} else {
			int diffInKLeft = t - (n - k);
			for (int i = 0; i < n; i++) {
				char a = s1.charAt(i);
				char b = s2.charAt(i);
				if (a == b) {
					if (diffInKLeft > 0) {
						System.out.print(diff(a, b));
						diffInKLeft--;
					} else {
						System.out.print(a);
					}
				} else {
					System.out.print(diff(a, b));
				}
			}
		}
//		if (n - k > 2 * t || (n - k) % 2 == 1 || t - (n - k) / 2 > k) {
//			System.out.println(-1);
//			return;
//		}
//		if (t * 2 + k < n || n < 2 * t && k < 2 * t - n) {
//			System.out.println(-1);
//			return;
//		}

//		int matchFirstLeft = (n - k) / 2;
//		int diffInKLeft = t - (n - k) / 2;
//		//int left = n - 2 * t;
//		//int counter = 0, edge = Math.min(n, t * 2);
//		//char[] res = new char[n];
//		for (int i = 0; i < n; i++) {
//			char a = s1.charAt(i);
//			char b = s2.charAt(i);
//			if (a == b) {
//				if (diffInKLeft > 0) {
//					System.out.print(diff(a, b));
//					diffInKLeft--;
//				} else {
//					System.out.print(a);
//				}
//			} else {
//				if (matchFirstLeft > 0) {
//					System.out.print(a);
//					matchFirstLeft--;
//				} else {
//					System.out.print(b);
//				}
//			}
//			if (s1.charAt(i) == s2.charAt(i) && left > 0) {
//				//res[i] = s1.charAt(i);
//				System.out.print(s1.charAt(i));
//				left--;
//			} else if (counter < t && counter >= edge - t){
//				//res[i] = diff(s1.charAt(i), s2.charAt(i));
//				System.out.print(diff(s1.charAt(i), s2.charAt(i)));
//				counter++;
//			} else if (counter < edge - t) {
//				//res[i] = s2.charAt(i);
//				System.out.print(s2.charAt(i));
//				counter++;
//			} else {
//				//res[i] = s1.charAt(i);
//				System.out.print(s1.charAt(i));
//				counter++;
//			}
//		}
	}
}