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.*;
import java.math.*;
 
public class Main {
 
    FastScanner in;
    PrintWriter out;
 
    static class FastScanner {
 
        BufferedReader br;
        StringTokenizer st;
 
        FastScanner(InputStream in) {
            br = new BufferedReader(new InputStreamReader(in));
            st = null;
        }
 
        String next() throws IOException {
            while (st == null || !st.hasMoreTokens())
                st = new StringTokenizer(br.readLine());
            return st.nextToken();
        }
 
        String nextLine() throws IOException {
            if (st == null || !st.hasMoreTokens())
                return br.readLine();
            StringBuilder result = new StringBuilder(st.nextToken());
            while (st.hasMoreTokens()) {
                result.append(" ");
                result.append(st.nextToken());
            }
            return result.toString();
        }
 
        int nextInt() throws IOException {
            return Integer.parseInt(next());
        }
 
        long nextLong() throws IOException {
            return Long.parseLong(next());
        }
 
        double nextDouble() throws IOException {
            return Double.parseDouble(next());
        }
 
    }
 
    void run() throws IOException {
        in = new FastScanner(System.in);
        out = new PrintWriter(System.out, false);
        solve();
        out.close();
    }
 
    public static void main(String[] args) throws IOException{
        new Main().run();
    }
 
    public void printArr(int[] arr){
        for(int i = 0; i < arr.length; i++){
            out.print(arr[i] + " ");
        }
        out.println();
    }
 
    public long gcd(long a, long b){
        if(a == 0) return b;
        return gcd(b % a, a);
    }

    public char other(char a, char b){
        for(char i = 'a'; i <= 'z'; i++){
            if(i != a && i != b){
                return i;
            }
        }
        return 'a';
    }

    public void solve() throws IOException{

        int n = in.nextInt(), m = in.nextInt();
        char[] str1 = in.next().toCharArray();
        char[] str2 = in.next().toCharArray();
        List<Integer> same = new ArrayList<>();
        List<Integer> diff = new ArrayList<>();
        for(int i = 0; i < n; i++){
            if(str1[i] == str2[i]){
                same.add(i);
            }else{
                diff.add(i);
            }
        }

        if(m == 0 && diff.size() != 0){
            out.println(-1);
            return;
        }else if(m == 0 && diff.size() == 0){
            out.println(new String(str1));
            return;
        }
        
        char[] str3 = new char[n];
        for(int i = 0; i < n; i++){
            str3[i] = other(str1[i], str2[i]);
        }
        while(m < n){
            if(same.size() > 0){
                Integer i = same.get(0);
                same.remove(0);
                str3[i] = str1[i];
                m++;
            }else if(diff.size() >1){
                Integer i = diff.get(0);
                Integer j = diff.get(1);
                diff.remove(0); diff.remove(0);
                str3[i] = str1[i];
                str3[j] = str2[j];
                m++;
            }else{
                out.println(-1);
                return;
            }
        }

        out.println(new String(str3));
        return;
    }

}