#include <bits/stdc++.h>
using namespace std;
int main() {
  int i, j, sizel, sizer, sizem;
  char buff[2000], l[1000], r[1000], m[1000];
  scanf("%s", buff);
  scanf("%s", m);
  if (buff[0] == '|') {
    sizel = 0;
    i = 0;
  } else {
    for (i = 0; buff[i] != '|'; i++) {
      l[i] = buff[i];
    }
  }
  sizel = i++;
  for (sizer = 0; buff[i] != '\0'; i++, sizer++) {
    r[sizer] = buff[i];
  }
  r[sizer] = '\0';
  sizem = strlen(m);
  if (sizem == 0) {
    if (sizer == sizel) {
      puts(buff);
    } else {
      puts("Impossible");
    }
  } else {
    if (sizel == sizer) {
      if (sizem % 2 == 0) {
        for (i = 0; i < sizel; i++) putchar(l[i]);
        for (j = 0; j < (sizem / 2); j++) putchar(m[j]);
        putchar('|');
        for (i = 0; i < sizer; i++) putchar(r[i]);
        for (; j < sizem; j++) putchar(m[j]);
        putchar('\n');
      } else {
        puts("Impossible");
      }
    } else if (sizel > sizer) {
      int dis = sizel - sizer;
      if (sizem < dis) {
        puts("Impossible");
      } else if ((sizem - dis) % 2 == 0) {
        for (i = 0; i < sizel; i++) putchar(l[i]);
        for (j = 0; j < (sizem - dis) / 2; j++) putchar(m[j]);
        putchar('|');
        for (i = 0; i < sizer; i++) putchar(r[i]);
        for (; j < sizem; j++) putchar(m[j]);
        putchar('\n');
      } else {
        puts("Impossible");
      }
    } else if (sizel < sizer) {
      int dis = sizer - sizel;
      if (sizem < dis) {
        puts("Impossible");
      } else if ((sizem - dis) % 2 == 0) {
        for (i = 0; i < sizel; i++) putchar(l[i]);
        for (j = 0; j < ((sizem - dis) / 2) + dis; j++) putchar(m[j]);
        putchar('|');
        for (i = 0; i < sizer; i++) putchar(r[i]);
        for (; j < sizem; j++) putchar(m[j]);
        putchar('\n');
      } else {
        puts("Impossible");
      }
    }
  }
  return 0;
}
