#44 WA
#include<bits/stdc++.h>
using namespace std;
string a[7];
char b[100][100],c[100][100];
int f[7][7][7],x,y,z;
bool cmp(string a,string b){
return a<b;
}
int main(){
memset(b,'.',sizeof(b));
memset(c,'.',sizeof(c));
for(int i=1;i<=6;i++){
cin>>a[i];
}
sort(a+1,a+7);
for(int i=1;i<=6;i++){
for(int j=1;j<=6;j++){
for(int k=1;k<=6;k++){
if(a[i].size()+a[j].size()==a[k].size()+1){
f[i][j][k]=1;
}
}
}
}
for(int i=1;i<=6;i++){
for(int j=1;j<=6;j++){
for(int k=1;k<=6;k++){
for(int ii=1;ii<=6;ii++){
for(int jj=1;jj<=6;jj++){
for(int kk=1;kk<=6;kk++){
if(f[i][j][k]==1&&f[ii][jj][kk]==1&&i!=ii&&i!=jj&&i!=kk&&j!=ii&&j!=jj&&j!=kk&&k!=ii&&k!=jj&&k!=kk){
if(a[i][a[i].size()-1]==a[kk][0]&&a[j][0]==a[kk][a[kk].size()-1]){
if(a[ii][a[ii].size()-1]==a[k][0]&&a[jj][0]==a[k][a[k].size()-1]){
if(a[kk][a[ii].size()-1]==a[k][a[i].size()-1]&&a[i][0]==a[ii][0]&&a[j][a[j].size()-1]==a[jj][a[jj].size()-1]){
for(int q=0;q<a[i].size();q++){
b[0][q]=a[i][q];
}
for(int q=0;q<a[ii].size();q++){
b[q][0]=a[ii][q];
}
for(int q=0;q<a[kk].size();q++){
b[q][a[i].size()-1]=a[kk][q];
}
for(int q=0;q<a[k].size();q++){
b[a[ii].size()-1][q]=a[k][q];
}
for(int q=0;q<a[jj].size();q++){
b[q+a[ii].size()-1][a[k].size()-1]=a[jj][q];
}
for(int q=0;q<a[j].size();q++){
b[a[kk].size()-1][q+a[i].size()-1]=a[j][q];
}
int flg=0;
for(int q=0;q<a[kk].size();q++){
for(int p=0;p<a[k].size();p++){
if(b[q][p]<c[q][p]){
flg=1;
// cout<<q<<" "<<p<<endl;
goto mm;
}else if(b[q][p]>c[q][p]){
goto mm;
}
}
if(a[k].size()<a[y].size()){
flg=1;
goto mm;
}else if(a[k].size()>a[y].size()){
goto mm;
}
}
mm:;
// for(int q=0;q<a[kk].size();q++){
// for(int p=0;p<a[k].size();p++){
// cout<<b[q][p];
// }
// cout<<endl;
// }
// cout<<endl;
if(flg==1||c[0][0]=='.'){
x=kk;
y=k;
z=i;
for(int q=0;q<a[kk].size();q++){
for(int p=0;p<a[k].size();p++){
c[q][p]=b[q][p];
}
}
memset(b,'.',sizeof(b));
}
}
}
}
}
}
}
}
}
}
}
if(c[0][0]!='.'){
for(int q=0;q<a[x].size();q++){
for(int p=0;p<a[y].size();p++){
cout<<c[q][p];
}
cout<<endl;
}
}else{
cout<<"Impossible";
}
}