#include <bits/stdc++.h>
using namespace std;
int n, ans[1005], timecnt;
bool l[1005];
string s[1005];
vector <int> V[1005];
void dfs( int x, int num )
{
l[x] = 1;
ans[num] = x;
timecnt ++;
if( timecnt > 1e7 )
{
cout << "***";
exit( 0 );
}
if( num == n )
{
for( int i = 1; i < n; i ++ ) cout << s[ans[i]] << ".";
cout << s[n] <<endl;
exit( 0 );
}
for( int i = 0, sz = V[x].size(); i < sz; i ++ )
{
if( l[V[x][i]] ) continue;
dfs( V[x][i], num + 1 );
}
l[x] = 0;
}
int main()
{
cin >> n;
for( int i = 1; i <= n; i ++ )
{
cin >> s[i];
}
sort( s + 1, s + n + 1 );
for( int i = 1; i <= n; i ++ )
{
for( int j = 1; j <= n; j ++ )
{
if( i == j ) continue;
if( s[i][s[i].size() - 1] != s[j][0] ) continue;
V[i].push_back( j );
}
}
for( int i = 1; i <= n; i ++ )
{
l[i] = 1;
ans[i] = i;
dfs( i, 1 );
memset( l, 0, sizeof( l ) );
memset( ans, 0, sizeof( ans ) );
}
cout << "***";
}