#include <bits/stdc++.h>
using namespace std;
vector<long long> factors(long long n) {
  vector<long long> first;
  long long tem = 1;
  for (long long x = 2; x * x <= n; x++) {
    while (n % x == 0) {
      first.push_back(x);
      n /= x;
    }
  }
  if (n > 1) first.push_back(n);
  return first;
}
long long stringToint(string str) {
  int num = stoi(str);
  return num;
}
int bin_search(int arr[], int target, int n) {
  int l = 0, r = n - 1, mid = 0;
  while (l <= r) {
    mid = l + ((r - l) / 2);
    if (arr[mid] == target)
      return mid;
    else if (arr[mid] < target)
      l = mid + 1;
    else
      r = mid - 1;
  }
  return -1;
}
vector<int> computeLPSArray(string str) {
  int n = str.size(), i = 0, j = 1;
  vector<int> a(n, 0);
  while (j < n) {
    if (str[i] != str[j]) {
      while (str[i] != str[j] && i > 0) i = a[i - 1];
      if (str[i] == str[j])
        a[j++] = ++i;
      else
        a[j++] = 0;
    } else
      a[j++] = ++i;
  }
  return a;
}
int hamming(int a, int b) { return __builtin_popcount(a ^ b); }
bool cmp(int a, int b) { return a > b; }
void reset() {
  for (int i = 0; i < 200000 + 100; i++) {
  }
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
  string a, b;
  while (cin >> a >> b) {
    int dif = 0;
    for (int i = 0; i < a.size(); i++) {
      if (a[i] != b[i]) dif++;
    }
    if (dif & 1)
      cout << "impossible\n";
    else {
      for (int i = 0; i < a.size(); i++) {
        if (a[i] != b[i]) {
          if (dif & 1)
            cout << b[i];
          else
            cout << a[i];
          dif--;
        } else
          cout << a[i];
      }
      cout << "\n";
    }
  }
  return 0;
}
