#include<bits/stdc++.h>
using namespace std;
int n,num[1010],s,p[1010],t;
string str[1010];
bool vis[1010];
vector<int> a[1010];
void dfs(int first,int now,int s){
t++;
if(t>1e7){
printf("***");
exit(0);
}
if(s==n){
cout<<str[first];
for(int i=1;i<n;i++) cout<<"."<<str[p[i]];
exit(0);
}
for(int i=0;i<num[now];i++){
int k=a[now][i];
if(!vis[k]){
vis[k]=1;
p[s]=k;
dfs(first,k,s+1);
p[s]=0;
vis[k]=0;
}
}
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++) cin>>str[i];
sort(str+1,str+n+1);
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(i!=j&&str[i][str[i].length()-1]==str[j][0]){
num[i]++;
a[i].push_back(j);
}
}
}
for(int i=1;i<=n;i++){
vis[i]=1;
dfs(i,i,1);
vis[i]=0;
}
printf("***");
return 0;
}