#include <bits/stdc++.h>
using namespace std;
bool b;
string s[6];
vector<string> ans;
void can() {
  if (s[0][0] == s[1][0])
    if (s[0][s[0].size() - 1] == s[2][0])
      if (s[3][0] == s[1][s[1].size() - 1] &&
          s[3][s[0].size() - 1] == s[2][s[1].size() - 1])
        if (s[4][0] == s[3][s[3].size() - 1])
          if (s[5][0] == s[2][s[2].size() - 1] &&
              s[5][s[5].size() - 1] == s[4][s[4].size() - 1])
            if (s[2].size() == s[1].size() + s[4].size() - 1 &&
                s[3].size() == s[0].size() + s[5].size() - 1) {
              vector<string> pretend;
              pretend.push_back(s[0]);
              for (int i = s[0].size() - 1; i < s[3].size() - 1; ++i)
                pretend[0] += '.';
              for (int i = 1; i < s[1].size() - 1; ++i) {
                pretend.push_back("");
                pretend[i] += s[1][i];
                for (int j = 1; j < s[0].size() - 1; ++j) pretend[i] += '.';
                pretend[i] += s[2][i];
                for (int j = s[0].size() - 1; j < s[3].size() - 1; ++j)
                  pretend[i] += '.';
              }
              pretend.push_back(s[3]);
              for (int i = s[1].size(); i < s[2].size() - 1; ++i) {
                pretend.push_back("");
                for (int j = 0; j < s[0].size() - 1; ++j) pretend[i] += '.';
                pretend[i] += s[2][i];
                for (int j = s[0].size() - 1; j < s[3].size() - 2; ++j)
                  pretend[i] += '.';
                pretend[i] += s[4][i - s[1].size() + 1];
              }
              pretend.push_back("");
              for (int j = 0; j < s[0].size() - 1; ++j)
                pretend[s[2].size() - 1] += '.';
              pretend[s[2].size() - 1] += s[5];
              b = 1;
              if (pretend < ans) ans = pretend;
            }
  return;
}
int main() {
  for (int i = 0; i < 6; ++i) cin >> s[i];
  cout << endl;
  sort(s, s + 6);
  can();
  ans.push_back("ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ:)");
  for (int i = 5; i > 0; --i)
    if (s[i] > s[i - 1]) {
      for (int j = 5; j >= i; --j)
        if (s[i - 1] < s[j]) {
          swap(s[i - 1], s[j]);
          sort(s + i, s + 6);
          break;
        }
      can();
      i = 6;
    }
  if (!b)
    cout << "Impossible";
  else {
    for (int i = 0; i < ans.size(); ++i) cout << ans[i] << endl;
  }
  return 0;
}
