#include <bits/stdc++.h>
using namespace std;
template <typename T, typename U>
static void amax(T &x, U y) {
  if (x < y) x = y;
}
template <typename T, typename U>
static void amin(T &x, U y) {
  if (x > y) x = y;
}
void read(string &s) {
  char k[1000000];
  scanf("%s", &k);
  s = k;
}
int main() {
  string s, t;
  read(s);
  read(t);
  int n, sl, l, r, nl, nr, m;
  n = s.size();
  m = t.size();
  nl = nr = l = r = 0;
  for (int i = 0; i < (n); i++) {
    if (s[i] == '|')
      break;
    else
      ++l;
  }
  r = n - 1 - l;
  if (l < r) {
    m -= r - l;
    nl = r - l;
  } else if (l > r) {
    m -= l - r;
    nr = l - r;
  }
  if (m < 0) {
    printf("Impossible\n");
    return 0;
  }
  if (m & 1) {
    printf("Impossible\n");
    return 0;
  }
  nl += m / 2;
  nr += m / 2;
  for (int i = 0; i < (nl); i++) printf("%c", t[i]);
  printf("%s", s.c_str());
  for (int i = nl; i < t.size(); i++) printf("%c", t[i]);
  printf("\n");
  return 0;
}
