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.*;
import java.util.*;

public class Main {
    
    
    static InputReader in;
    static PrintWriter out;
        
    public static void main(String[] args) throws IOException{
        //InputStream ins = new FileInputStream("E:\\rush.txt");
        InputStream ins = System.in;
        in = new InputReader(ins);
        out = new PrintWriter(System.out);
        //code start from here
        new Task().solve(in, out);
        out.close();
    }
    
    static int N = 50000;
    static class Task{
        
        int n,t;
        String s1,s2;
        StringBuilder sb;
        int cnt = 0;
        
        public char v(char x,char y) {
        	for (char key = 'a';key<='z';key++){
        		if (key!=x && key!=y) return key;
        	}
        	return '2';
        }
        
        public void solve(InputReader in,PrintWriter out) {
        	n = in.nextInt();t = in.nextInt();
        	s1 = in.next();s2 = in.next();
        	for (int i = 0;i < n;i++) {
        		if (s1.charAt(i)!=s2.charAt(i)) {
        			cnt++;
        		}
        	}
        	if (cnt>2*t) {
        		out.println(-1);
        		return;
        	}
        	if (cnt>=t) {
        		int num = cnt-t;
        		int cl = 0;
        		for (int i = 0;i < n;i++) {
        			if (s1.charAt(i)==s2.charAt(i)) {
        				out.print(s1.charAt(i));
        			}else {
        				cl++;
        				if (cl<=num) {
        					out.print(s2.charAt(i));
        				}else if (cl>num && cl <=2*num) {
        					out.print(s1.charAt(i));
        				}else {
        					out.print(v(s1.charAt(i),s2.charAt(i)));
        				}
        			}
        		}
        	}else {
        		int num = t-cnt;
        		for (int i = 0;i < n;i++) {
        			if (s1.charAt(i)==s2.charAt(i)) {
        				if (num>0) {
        					num--;
        					out.print(v(s1.charAt(i),s2.charAt(i)));
        				}else {
        					out.print(s1.charAt(i));
        				}
        			}else {
        				out.print(v(s1.charAt(i),s2.charAt(i)));
        			}
        		}
        	}
        }
    }

    

    static class InputReader{
        public BufferedReader br;
        public StringTokenizer tokenizer;
        
        public InputReader(InputStream ins) {
            br = new BufferedReader(new InputStreamReader(ins));
            tokenizer = null;
        }
        
        public String next(){
            while (tokenizer==null || !tokenizer.hasMoreTokens()) {
                try {
                tokenizer = new StringTokenizer(br.readLine());
                }catch(IOException e) {
                    throw new RuntimeException(e);
                }
            }
            return tokenizer.nextToken();
        }
        
        public int nextInt() {
            return Integer.parseInt(next());
        }
    }
}