#include <bits/stdc++.h>
int main() {
  char str1[50], str2[50];
  gets(str1);
  gets(str2);
  int len1 = strlen(str1);
  int len2 = strlen(str2);
  int i, dl, dr, j, k;
  for (i = 0; i < len1; i++) {
    if (str1[i] == '|') {
      dl = i;
      dr = len1 - dl - 1;
      break;
    }
  }
  if (dl == dr) {
    if (len2 % 2 == 0) {
      for (i = 0; i < dl; i++) printf("%c", str1[i]);
      for (j = 0; j < len2 / 2; j++) printf("%c", str2[j]);
      for (k = i; k < len1; k++) printf("%c", str1[k]);
      for (k = j; k < len2; k++) printf("%c", str2[k]);
      printf("\n");
    } else {
      printf("Impossible\n");
      return 0;
    }
  } else if ((dl + dr + len2) % 2 == 0 && len2 > abs(dl - dr)) {
    int d = (dl + dr + len2) / 2;
    for (i = 0; i < dl; i++) printf("%c", str1[i]);
    for (j = 0; j < d - dl; j++) printf("%c", str2[j]);
    for (k = i; k < len1; k++) printf("%c", str1[k]);
    for (k = j; k < len2; k++) printf("%c", str2[k]);
    printf("\n");
  } else {
    if (dl > dr) {
      if (dl != dr + len2) {
        printf("Impossible\n");
        return 0;
      } else {
        printf("%s", str1);
        puts(str2);
      }
    } else {
      if (dr != dl + len2) {
        printf("Impossible\n");
        return 0;
      } else {
        printf("%s", str2);
        puts(str1);
      }
    }
  }
  return 0;
}
