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

    public class Codeforces {
        
        
        public static void main(String[] args) throws IOException {
            Reader.init(System.in);
            int n = Reader.nextInt();
            int t = Reader.nextInt();
            
            String s1 = Reader.next();
            String s2 = Reader.next();
            
            char ans[] = new char[s1.length()];
            
            int count = 0;
            
            for(int i = 0; i < s1.length(); i++){
                if(s1.charAt(i) == s2.charAt(i)){
                    if(count == s1.length() - t)
                        break;
                    
                    ans[i] = s1.charAt(i);
                    count++;
                }
            }
            
            
            int i = 0;
            while(count != s1.length() - t){
                while(i < s1.length() && ans[i] != 0)
                    i++;
                
                if(i == s1.length())
                    break;
                
                ans[i] = s1.charAt(i);
                
                while(i < s2.length() && ans[i] != 0)
                    i++;
                
                if(i == s1.length())
                    break;
                
                ans[i] = s2.charAt(i);
                
                count++;
            }
            
            if(count != s1.length() - t){
                System.out.println("-1");
                return;
            }
            
            for(i = 0; i < s1.length(); i++){
                if(ans[i] != 0)
                    continue;
                
                char ch = 'a';
                while(ch == s1.charAt(i) || ch == s2.charAt(i))
                    ch++;
                
                ans[i] = ch;
            }
            
            StringBuilder sb = new StringBuilder();
            for(char ch : ans)
                sb.append(ch);
            
            System.out.println(sb);
        }
    }
    
    class  Edge implements Comparable<Edge>{

        int to;
        int from;
        int cost;
        
        Edge(int a, int b, int c){
            from = a;
            to = b;
            cost = c;
        }

        @Override
        public int compareTo(Edge t) {
            return t.cost - cost;
        }
    }


    class NN implements Comparable<NN>{
        int x;
        int mod;
        
        NN(int a, int b){
            x = a;
            mod = b;
        }

        @Override
        public int compareTo(NN t) {
            return mod - t.mod;
        }
        
    }


    class Reader {

        static BufferedReader reader;
        static StringTokenizer tokenizer;

        public static int pars(String x) {
            int num = 0;
            int i = 0;
            if (x.charAt(0) == '-') {
                i = 1;
            }
            for (; i < x.length(); i++) {
                num = num * 10 + (x.charAt(i) - '0');
            }

            if (x.charAt(0) == '-') {
                return -num;
            }

            return num;
        }

        static void init(InputStream input) {
            reader = new BufferedReader(
                    new InputStreamReader(input));
            tokenizer = new StringTokenizer("");
        }

        static void init(FileReader input) {
            reader = new BufferedReader(input);
            tokenizer = new StringTokenizer("");
        }

        static String next() throws IOException {
            while (!tokenizer.hasMoreTokens()) {
                tokenizer = new StringTokenizer(
                        reader.readLine());
            }
            return tokenizer.nextToken();
        }

        static int nextInt() throws IOException {
            return pars(next());
        }

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

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