#include<bits/stdc++.h>
using namespace std;
#define int long long
const int MOD=998244353;
const int p=13331;
int n,f[2000005],qpw[2000005];
string s;
int get_hash(int l,int r){
if(l>r)return 0;
return (f[r]-f[l-1]*qpw[r-l+1]%MOD+MOD)%MOD;
}
map<int,bool>mp;
signed main(){
cin>>n;
cin>>s;
if(n%2==0)return puts("NOT POSSIBLE"),0;
s=" "+s;
qpw[0]=1;
for(int i=1;i<=n;i++){
f[i]=(f[i-1]*p%MOD+s[i])%MOD;
qpw[i]=qpw[i-1]*p%MOD;
}
int len=n/2,cnt=0;
int ans=0;
for(int i=1;i<=n;i++){
int x,y,a,b;
x=a=b=y=0;
if(i==n){
x=get_hash(1,len);
y=0;
a=get_hash(len+1,i-1);
}
else if(i==len+1){
x=get_hash(1,len);
a=get_hash(i+1,n);
}
else if(i>len){
x=get_hash(1,len);
y=0;
a=get_hash(len+1,i-1)*qpw[len-n+i-1]%MOD;
b=get_hash(i+1,n);
}
else{
x=get_hash(1,i-1)*qpw[len-i+1]%MOD;
y=get_hash(i+1,len+1)%MOD;
a=get_hash(len+2,n)%MOD;
b=0;
}
if(x+y==a+b){
if(cnt==0){
ans=i;
cnt++;
mp[x+y]=1;
}
else if(!mp[x+y])return puts("NOT UNIQUE"),0;
}
}
if(!cnt)puts("NOT POSSIBLE");
else {
if(ans>len){
cout<<s.substr(1,len);
}
else {
cout<<s.substr(len+2);
}
}
return 0;
}