/*To The End Of The Galaxy*/
#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<queue>
#include<iomanip>
#include<stack>
#include<map>
#include<set>
#include<cmath>
#include<complex>
#define debug(x) cerr<<#x<<"="<<x<<endl
#define INF 0x7f7f7f7f
#define llINF 0x7fffffffffffll
using namespace std;
typedef pair<int,int> pii;
typedef long long ll;
inline int init()
{
int now=0,ju=1;char c;bool flag=false;
while(1)
{
c=getchar();
if(c=='-')ju=-1;
else if(c>='0'&&c<='9')
{
now=now*10+c-'0';
flag=true;
}
else if(flag)return now*ju;
}
}
inline long long llinit()
{
long long now=0,ju=1;char c;bool flag=false;
while(1)
{
c=getchar();
if(c=='-')ju=-1;
else if(c>='0'&&c<='9')
{
now=now*10+c-'0';
flag=true;
}
else if(flag)return now*ju;
}
}
char str[60005];
int n,m,sa[60005],rank[60005],height[60005],auxa[60005],auxb[60005],auxsort[60005],auxval[60005];
void getsa()
{
int cnt=0,*x=auxa,*y=auxb;m=256;
for(int i=1;i<=n;i++)++auxsort[x[i]=str[i]];
for(int i=1;i<=m;i++)auxsort[i]+=auxsort[i-1];
for(int i=n;i>=1;i--)sa[auxsort[x[i]]--]=i;
for(int j=1;cnt<n;j<<=1,m=cnt)
{
cnt=0;
for(int i=n-j+1;i<=n;i++)y[++cnt]=i;
for(int i=1;i<=n;i++)if(sa[i]>j)y[++cnt]=sa[i]-j;
for(int i=1;i<=n;i++)auxval[i]=x[y[i]];
for(int i=0;i<=m;i++)auxsort[i]=0;
for(int i=1;i<=n;i++)++auxsort[auxval[i]];
for(int i=2;i<=m;i++)auxsort[i]+=auxsort[i-1];
for(int i=n;i>=1;i--)sa[auxsort[auxval[i]]--]=y[i];
swap(x,y);cnt=x[sa[1]]=1;
for(int i=2;i<=n;i++)
{
if(y[sa[i]]==y[sa[i-1]]&&y[sa[i]+j]==y[sa[i-1]+j])x[sa[i]]=cnt;
else x[sa[i]]=++cnt;
}
}
for(int i=1;i<=n;i++)rank[sa[i]]=i;
for(int i=1,cnt=0;i<=n;i++)
{
if(rank[i]==1)continue;
if(cnt)cnt--;
int j=sa[rank[i]-1];
while(str[i+cnt]==str[j+cnt])
{
if(i==90)
{
int l=13;
}
++cnt;
}
height[rank[i]]=cnt;
}
}
int main()
{
n=init();m=256;
for(int i=1;i<=n;i++)
{
scanf("%s",str+i);
}
int len=strlen(str+1);
str[len+1]='0';len++;
for(int i=1;i<len;i++)str[len+i]=str[len-i];
n=strlen(str+1);
getsa();
int l=1,r=len+1;len--;
for(int i=1;i<=len;i++)
{
if(rank[l]<rank[r])
{
putchar(str[l]);
l++;
}
else putchar(str[r]),r++;
if(i%80==0)printf("\n");
}
return 0;
}
/*
srO xudyh davidlee1999WTK linkct1999 Orz
compiler TDM-GCC 5.9.2
*/