#include <bits/stdc++.h>
using namespace std;
template <typename T>
void pV(const vector<T> &v) {
  for (auto &it : v) e(it) << endl;
}
template <typename T>
void pS(const set<T> &s) {
  for (auto &it : s) e(it) << endl;
}
template <typename T>
T gcd(T a, T b) {
  T t, x, y;
  x = max(a, b);
  y = min(a, b);
  while (y != 0) {
    t = x;
    x = y;
    y = t % y;
  }
  return x;
}
template <typename T>
T lcm(T a, T b) {
  return (a * b) / gcd<T>(a, b);
}
template <typename T>
T son(T n) {
  int k = 1;
  while (n / (T)pow(10, k) != 0) k += 1;
  return k;
}
int start_s = clock();
void timer() {
  int stop_s = clock();
  cout << "time taken: " << (stop_s - start_s) / double(CLOCKS_PER_SEC) * 1000
       << " s\n";
}
string s1, s2;
int main(int argc, char *argv[]) {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cin >> s1 >> s2;
  assert(s1.size() == s2.size());
  string a = s1;
  int c = 0, n = 0;
  for (int i = 0; i < (int)s1.size(); i++)
    if (s1[i] != s2[i]) {
      c & 1 ? (a[i], n += 1)
            : (a[i] == '1' ? (a[i] = '0', n += 1) : (a[i] = '1', n += 1));
      c += 1;
    }
  n & 1 ? cout << "impossible\n" : cout << a << "\n";
}
