#include <bits/stdc++.h>   using namespace std;   char inp1[100005];   char inp2[100005];   char res[100005];   bool mk[100005];   bool mk1[100005];   char getDiff(char a, char b, char c) {     for (int i = 0; i < 26; i++)       if (a != ( a  + i) && b != ( a  + i) && c != ( a  + i)) return ( a  + i);     return -1;   }   int main() {     int n, t, s = 0;     cin >> n >> t;     cin >> inp1 >> inp2;     memset(mk, 0, sizeof mk);     memset(mk1, 0, sizeof mk1);     for (int i = 0; i < n; i++)       if (inp1[i] != inp2[i]) s++;     res[n] =   0 ;     if (s > 2 * t) {       cout << -1 << endl;       return 0;     }     if (s <= 2 * t && s >= t) {       int c = 0;       for (int i = 0; i < n; i++)         if (inp1[i] != inp2[i] && c < t) mk[i] = true, c++;       c = 0;       for (int i = n - 1; i >= 0; i--)         if (inp1[i] != inp2[i] && c < t) mk1[i] = true, c++;       for (int i = 0; i < n; i++) {         if (mk[i] == true && mk1[i] == true)           res[i] = getDiff(inp1[i], inp2[i], 0);         else if (mk[i])           res[i] = inp2[i];         else if (mk1[i])           res[i] = inp1[i];         else           res[i] = inp1[i];       }       cout << res << endl;       return 0;     }     if (s < t) {       int c = 0;       for (int i = 0; i < n; i++) {         if (inp1[i] != inp2[i]) res[i] = getDiff(inp1[i], inp2[i], 0), c++;       }       for (int i = 0; i < n; i++) {         if (inp1[i] == inp2[i] && c < t)           res[i] = getDiff(inp1[i], inp2[i], 0), c++;         else if (inp1[i] == inp2[i])           res[i] = inp1[i];       }       cout << res << endl;     }     return 0;   }   