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.DataInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.PriorityQueue;
import java.util.Random;
import java.util.StringTokenizer;

public class C
{
	String line;
	StringTokenizer inputParser;
	BufferedReader is;
	FileInputStream fstream;
	DataInputStream in;
	String FInput="";
	
	
	void openInput(String file)
	{

		if(file==null)is = new BufferedReader(new InputStreamReader(System.in));//stdin
		else
		{
			try{
		
				
			fstream = new FileInputStream(file);
			in = new DataInputStream(fstream);
			is = new BufferedReader(new InputStreamReader(in));
			}catch(Exception e)
			{
				System.err.println(e);
			}
		}

	}
	
	void readNextLine()
	{
		try {
			line = is.readLine();
			inputParser = new StringTokenizer(line, " ");
			//System.err.println("Input: " + line);
		} catch (IOException e) {
			System.err.println("Unexpected IO ERROR: " + e);
		}	
		
	}
	
	int NextInt()
	{
		String n = inputParser.nextToken();
		int val = Integer.parseInt(n);
		
		//System.out.println("I read this number: " + val);
		return val;
	}
	
	String NextString()
	{
		String n = inputParser.nextToken();
		return n;
	}
	
	void closeInput()
	{
		try {
			is.close();
		} catch (IOException e) {
			System.err.println("Unexpected IO ERROR: " + e);
		}
			
	}
	
	public void readFInput()
	{
		for(;;)
		{
			try
			{
				readNextLine();
				FInput+=line+" ";
			}
			catch(Exception e)
			{
				break;
			}
		}
		inputParser = new StringTokenizer(FInput, " ");
	}
	
	long NextLong()
    {
            String n = inputParser.nextToken();
            
            long val = Long.parseLong(n);
            
            return val;
    }
	
	public static void main(String [] argv)
	{
		//String filePath="input.txt";
        String filePath=null;
        if(argv.length>0)filePath=argv[0];
		new C(filePath);
	}
	
	
	public C(String inputFile)
	{
		openInput(inputFile);
		//readNextLine();
		int T=1;//NextInt();
		StringBuilder sb = new StringBuilder();
		readNextLine();
		int N=NextInt();
		int K=NextInt();
		readNextLine();
		String a=line;
		readNextLine();
		String b=line;
		for(int t=0; t<T; t++)
		{
			sb.append(solve(a, b, K)+"\n");
		}
		System.out.print(sb);
		
		
		
		closeInput();		
	}
	
	String solve (String a, String b, int K)
	{
		StringBuilder sb = new StringBuilder();
		int c=0;
		int N=a.length();
		for(int i=0; i<N; i++)
		{
			if(a.charAt(i)==b.charAt(i))c++;
		}
		int d=N-c;
		
		if(d>2*K)
			sb.append(-1);
		else
		{	
			K=N-K;
			int A=K-c, B=K-c;
			int same=Math.min(c, K);
			for(int i=0; i<N; i++)
			{
				if(a.charAt(i)==b.charAt(i))
				{
					if(same>0)
					{
						sb.append(a.charAt(i));
						same--;
					}
					else
					{
						char x='a';
						if(x==a.charAt(i))x='b';
						sb.append(x);
					}
				}
				else
				{
					if(A>0)
					{
						sb.append(a.charAt(i));
						A--;
					}
					else if(B>0)
					{
						sb.append(b.charAt(i));
						B--;
					}
					else
					{
						char x='a';
						while(x==a.charAt(i))x++;
						while(x==b.charAt(i))x++;
						while(x==a.charAt(i))x++;
						sb.append(x);
					}
					
				}
			}
			int da=0, db=0;
			String y=sb.toString();
			for(int i=0; i<N; i++)
			{
				if(y.charAt(i)!=a.charAt(i))da++;
				if(y.charAt(i)!=b.charAt(i))db++;
			}
			if(da!=N-K||db!=N-K)System.out.println(da+" "+db+" "+(N-K));
		}
		return sb.toString();
	}

}