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:
/**
 * Created by ckboss on 15-10-7.
 */
import java.util.*;

public class CF584C {

    int n,t;
    int t1,t2;
    String s1,s2;
    StringBuffer s3;

    char getChar(char c1,char c2) {
        char c;
        for(c='a';c<='z';c++) {
            if(c!=c1&&c!=c2) {
                break;
            }
        }
        return c;
    }

    CF584C() {

        Scanner in = new Scanner(System.in);

        n=in.nextInt(); t=in.nextInt();
        s1=in.next(); s2=in.next();
        s3=new StringBuffer();
        t1=0; t2=0;

        for(int i=0;i<n;i++) {
            char c1=s1.charAt(i),c2=s2.charAt(i);
            if(c1!=c2) {
                if (t1 <= t2) {
                    s3.append(c2);
                    t1++;
                } else {
                     s3.append(c1);
                    t2++;
                }
            }
            else s3.append(c1);
        }

        //System.out.println("---> "+s3+" t1: "+t1+" t2: "+t2);

        if(t1>t||t2>t) {
            System.out.println("-1");
            return ;
        }

        boolean flag=false;
        for(int i=0;i<n;i++) {

            char c1=s1.charAt(i),c2=s2.charAt(i);

            if(c1!=c2) {
                char oc = s3.charAt(i);
                if(oc==c1&&t1<t) {
                    s3.setCharAt(i, getChar(c1, c2));
                    t1++;
                }
                if(oc==c2&&t2<t) {
                    s3.setCharAt(i, getChar(c1, c2));
                    t2++;
                }
            }

            if (t1 == t && t2 == t) {
                flag = true;
                break;
            }
        }

        for(int i=0;i<n&&flag==false;i++) {

            char c1=s1.charAt(i),c2=s2.charAt(i);

            if(c1==c2) {

                s3.setCharAt(i, getChar(c1, c2));
                t1++; t2++;
            }

            if (t1 == t && t2 == t) {
                flag = true;
                break;
            }
        }

        if(flag==false) {
           System.out.println("-1");
        }
        else {
            System.out.println(s3);
        }
    }

    public static void main(String[] args) {
        new CF584C();
    }
}