#include <bits/stdc++.h>   using namespace std;   int readInt() {     bool minus = false;     int result = 0;     char ch;     ch = getchar();     while (true) {       if (ch ==  - ) break;       if (ch >=  0  && ch <=  9 ) break;       ch = getchar();     }     if (ch ==  - )       minus = true;     else       result = ch -  0 ;     while (true) {       ch = getchar();       if (ch <  0  || ch >  9 ) break;       result = result * 10 + (ch -  0 );     }     if (minus)       return -result;     else       return result;   }   template <class T>   T mulmod(T a, T b) {     if (b == 0) return 0;     if (b == 1) return a;     T x = mulmod(a, b >> 1);     x = (x + x) % 1000000007;     if (b & 1) x = (x + a) % 1000000007;     return x;   }   template <class T>   T larger(T a, T b) {     return (a > b ? a : b);   }   template <class T>   T smaller(T a, T b) {     return (a < b ? a : b);   }   template <class T>   T gcd(T a, T b) {     if (b == 0) return a;     return gcd(b, a % b);   }   template <class T>   T lcm(T a, T b) {     return (a * b) / gcd(a, b);   }   template <class T>   string converter(T n) {     stringstream x;     x << n;     return x.str();   }   template <class T>   T pw(T a, T b) {     if (b == 0) return 1;     T x = pw(a, b >> 1);     x = (x * x) % 1000000007;     if (b & 1) x = (x * a) % 1000000007;     return x;   }   template <class T1>   void deb(T1 e1) {     cout << e1 << endl;   }   template <class T1, class T2>   void deb(T1 e1, T2 e2) {     cout << e1 <<     << e2 << endl;   }   template <class T1, class T2, class T3>   void deb(T1 e1, T2 e2, T3 e3) {     cout << e1 <<     << e2 <<     << e3 << endl;   }   template <class T1, class T2, class T3, class T4>   void deb(T1 e1, T2 e2, T3 e3, T4 e4) {     cout << e1 <<     << e2 <<     << e3 <<     << e4 << endl;   }   template <class T1, class T2, class T3, class T4, class T5>   void deb(T1 e1, T2 e2, T3 e3, T4 e4, T5 e5) {     cout << e1 <<     << e2 <<     << e3 <<     << e4 <<     << e5 << endl;   }   template <class T1, class T2, class T3, class T4, class T5, class T6>   void deb(T1 e1, T2 e2, T3 e3, T4 e4, T5 e5, T6 e6) {     cout << e1 <<     << e2 <<     << e3 <<     << e4 <<     << e5 <<     << e6          << endl;   }   char totalDiff(char a, char b) {     for (char c =  a ; c <=  z ; c++)       if (c != a && c != b) return c;   }   void letsgo() {     int n, t;     cin >> n >> t;     string a, b, c;     cin >> a >> b;     int i, same = 0;     for (i = 0; i < n; i++) {       same += (a[i] == b[i]);     }     c =   ;     if (same >= n - t) {       int j = n - t;       for (i = 0; i < n; i++) {         if (a[i] == b[i] && j)           c.push_back(a[i]), j--;         else           c.push_back(totalDiff(a[i], b[i]));       }       cout << c;       return;     }     int j = n - t - same;     int l = j;     int k = same;     if (2 * j > n - same) {       cout << -1;       return;     }     for (i = 0; i < n; i++) {       if (a[i] == b[i] && k) {         c.push_back(a[i]);         k--;       } else if (j) {         c.push_back(a[i]);         j--;       } else if (l) {         c.push_back(b[i]);         l--;       } else {         c.push_back(totalDiff(a[i], b[i]));       }     }     cout << c;   }   int main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     ;     letsgo();     int t;     cin >> t;     return 0;   }