#include<bits/stdc++.h>
using namespace std;
string a[1100],c;
int n,h[30],t[30],s,e;
bool b[1100];
void dfs(int k,string p)
{
if(k==n+1)
{
cout<<p;
exit(0);
}
for(int i=1;i<=n;++i)
{
if(b[i])continue;
if(p[p.size()-1]==a[i][0])
{
b[i]=1;
dfs(k+1,p+"."+a[i]);
}
}
}
int main()
{
cin>>n;
for(int i=1;i<=n;++i)
{
cin>>a[i];
h[a[i][0]-'a']++;
t[a[i][a[i].size()-1]-'a']++;
}
sort(a+1,a+1+n);
for(int i=0;i<26;++i)
{
if(h[i]==t[i]+1)s=i;
if(t[i]==h[i]+1)e=i;
}
for(int i=1;i<=n;++i)
{
if(a[i][0]==(s+'a')&&(a[i][a[i].size()-1]!=(e+'a')||t[e]!=1))
{
c=a[i];
b[i]=1;
break;
}
}
dfs(2,c);
printf("***");
return 0;
}