#include <bits/stdc++.h>
using namespace std;
int dx[] = {0, 0, 1, -1, 1, 1, -1, -1};
int dy[] = {1, -1, 0, 0, 1, -1, 1, -1};
const long double pi = 2 * acos(0.0);
const int oo = (int)2e9;
template <typename T>
inline void get(T &x) {
  T y, s = 1, i = 10;
  y = 0;
  char c = getchar();
  while (!(c >= 48 && c <= 57)) {
    if (c == '-') s = -1;
    c = getchar();
  }
  while ((c >= 48 && c <= 57))
    y = (y << 1) + (y << 3) + (c & 15), c = getchar();
  if (c != '.') goto rt;
  c = getchar();
  while ((c >= 48 && c <= 57))
    y = y + (c & 15) / i, i = (i << 1) + (i << 3), c = getchar();
rt:
  x = y * s;
}
template <typename T>
inline void put(T x) {
  if (!x) {
    putchar('0');
    return;
  }
  char c[10] = {};
  int ln = 0;
  while (x) {
    c[ln++] = x % 10;
    x /= 10;
  }
  while (ln--) {
    putchar(c[ln] + '0');
  }
}
int main() {
  string s, t;
  cin >> s >> t;
  int ans = 0;
  for (int i = 0; i < (int)s.size(); ++i) ans += s[i] != t[i];
  string p = "";
  int a = 0, b = 0;
  int x = 1;
  for (int i = 0; i < (int)s.size(); ++i) {
    if (s[i] == t[i]) {
      p += s[i];
      continue;
    }
    if (x & 1)
      p += s[i], ++x;
    else if (!(x & 1))
      p += t[i], ++x;
  }
  for (int i = 0; i < (int)s.size(); ++i) {
    if (s[i] == t[i]) continue;
    if (s[i] == p[i])
      ++a;
    else if (t[i] == p[i])
      ++b;
  }
  if (a == b)
    cout << p;
  else
    puts("impossible");
  return 0;
}
