#include<bits/stdc++.h>
using namespace std;
const int base=1331;
const int mod=5e5+9;
string ans;
char s[510001];
unsigned long long f[510001],bas[510001],f2[510001];
int n;
int cnt;
bool check(int l,int r,int l1,int r1)
{
return (f[r]-f[l-1]*bas[r-l+1])==(f2[r1]-f2[l1-1]*bas[r1-l1+1]);
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)cin>>s[i];
bas[0]=1;
for(int i=1;i<=n;i++)
{
f[i]=(f[i-1]*base+s[i])%mod;
bas[i]=(bas[i-1]*base)%mod;
}
for(int i=n;i>=1;i--)
{
f2[i]=(f2[i+1]*base+s[i])%mod;
}
int head=1,tail=n;
for(int i=1;i<=n;i++)
{
if(s[head]<s[tail])
ans[++cnt]=s[head],head++;
else if(s[tail]<s[head])
ans[++cnt]=s[tail],tail--;
else {
int l=1,r=(tail-head+1)>>1,ans1=1;
while(l<=r)
{
int mid=l+r>>1;
if(check(head-1,head+mid-1,tail+1,tail-mid+1))
{
ans1=mid;
l=mid+1;
}
else r=mid-1;
}
if(s[head+ans1]<s[tail-ans1])
ans[++cnt]=s[head],head++;
else ans[++cnt]=s[tail],tail--;
}
}
for(int i=1;i<=n;i++)
{
cout<<ans[i];
if((i)%80==0)cout<<endl;
}
}