// SIGMA BOY hihihihihihihi
#define se second
#define fi first
#define pb push_back
#define pob pop_back
#define bitebi __builtin_popcountll
#include <bits/stdc++.h>
using namespace std ;
typedef long long ll;
typedef long double ld;
typedef pair<ll,ll> pll;
const ll Mod[2] = {(ll)1e9+7,(ll)1e9+3};
const ll Maxn = 1e6+69;
const ll oo = 1e18;
const ll base = 31;
string s ;
pll p[Maxn],h[Maxn];
pll Mod2 ( pll x )
{
return {x.fi%Mod[0],x.se%Mod[1]};
}
void Init()
{
p[0] = {1,1} ;
for (int i = 1 ; i <= s.size(); ++i)
{
p[i] = Mod2({p[i-1].fi*base,p[i-1].se*base});
h[i] = Mod2({h[i-1].fi*base+s[i-1]-'a'+1,
h[i-1].se*base+s[i-1]-'a'+1});
}
}
ll Get ( int l , int r )
{
ll x1 = h[r].fi - h[l-1].fi*p[r-l+1].fi ;
ll x2 = h[r].se - h[l-1].se*p[r-l+1].se;
return (x1+ Mod[0]*Mod[0])%Mod[0]*Mod[0]+
(x2+Mod[1]*Mod[1])%Mod[1];
}
bool Check ( int leng )
{
vector<ll> v ;
for (int i = 1 ; i <= s.size()-leng+1; ++i)
{
ll cur = Get(i,i+leng-1);
v.pb(cur);
}
sort(v.begin(),v.end());
for (int i = 0 ; i < v.size()-1; ++i)
{
if(v[i]==v[i+1]) return true;
}
return false;
}
void Print ( int leng )
{
vector<pll> v ;
for (int i = 1 ; i <= s.size()-leng+1; ++i)
{
ll cur = Get(i,i+leng-1);
v.pb({cur,i-1});
}
sort(v.begin(),v.end());
for (int i = 0 ; i < v.size()-1; ++i)
{
if(v[i].fi==v[i+1].fi)
{
cout << s.substr(v[i].se,leng);
return;
}
}
}
void Do()
{
getline(cin,s);
Init();
ll l = 1 , r = s.size();
while(l<=r)
{
ll mid = (l+r)/2;
if(Check(mid)) l = mid+1;
else r = mid - 1;
}
if(r==0)
{
cout << -1;
return;
}
Print(r);
}
signed main ()
{
ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
#define task "test"
if(fopen(task".inp", "r")){
freopen(task".inp", "r", stdin);
freopen(task".out", "w", stdout);
}
int ntest=1;
while(ntest--) Do();
cerr<<"\nTime elapsed: "<<1000*clock()/CLOCKS_PER_SEC<<"ms\n";
}
Ly8gU0lHTUEgQk9ZIGhpaGloaWhpaGloaWhpCgojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgcG9iIHBvcF9iYWNrCiNkZWZpbmUgYml0ZWJpIF9fYnVpbHRpbl9wb3Bjb3VudGxsCiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZCA7CnR5cGVkZWYgbG9uZyBsb25nIGxsOwp0eXBlZGVmIGxvbmcgZG91YmxlIGxkOwp0eXBlZGVmIHBhaXI8bGwsbGw+IHBsbDsKCmNvbnN0IGxsIE1vZFsyXSA9IHsobGwpMWU5KzcsKGxsKTFlOSszfTsKY29uc3QgbGwgTWF4biA9IDFlNis2OTsKY29uc3QgbGwgb28gPSAxZTE4OwoKY29uc3QgbGwgYmFzZSA9IDMxOwoKc3RyaW5nIHMgOwpwbGwgcFtNYXhuXSxoW01heG5dOwoKcGxsIE1vZDIgKCBwbGwgeCApCnsKICAgIHJldHVybiB7eC5maSVNb2RbMF0seC5zZSVNb2RbMV19Owp9Cgp2b2lkIEluaXQoKQp7CiAgICBwWzBdID0gezEsMX0gOwogICAgZm9yIChpbnQgaSA9IDEgOyBpIDw9IHMuc2l6ZSgpOyArK2kpCiAgICB7CiAgICAgICAgcFtpXSA9IE1vZDIoe3BbaS0xXS5maSpiYXNlLHBbaS0xXS5zZSpiYXNlfSk7CiAgICAgICAgaFtpXSA9IE1vZDIoe2hbaS0xXS5maSpiYXNlK3NbaS0xXS0nYScrMSwKICAgICAgICAgICAgICAgICAgICBoW2ktMV0uc2UqYmFzZStzW2ktMV0tJ2EnKzF9KTsKICAgIH0KfQoKbGwgR2V0ICggaW50IGwgLCBpbnQgciApCnsKICAgIGxsIHgxID0gaFtyXS5maSAtIGhbbC0xXS5maSpwW3ItbCsxXS5maSA7CiAgICBsbCB4MiA9IGhbcl0uc2UgLSBoW2wtMV0uc2UqcFtyLWwrMV0uc2U7CiAgICByZXR1cm4gKHgxKyBNb2RbMF0qTW9kWzBdKSVNb2RbMF0qTW9kWzBdKwogICAgKHgyK01vZFsxXSpNb2RbMV0pJU1vZFsxXTsKfQoKYm9vbCBDaGVjayAoIGludCBsZW5nICkKewogICAgdmVjdG9yPGxsPiB2IDsKICAgIGZvciAoaW50IGkgPSAxIDsgaSA8PSBzLnNpemUoKS1sZW5nKzE7ICsraSkKICAgIHsKICAgICAgICBsbCBjdXIgPSBHZXQoaSxpK2xlbmctMSk7CiAgICAgICAgdi5wYihjdXIpOwogICAgfQogICAgc29ydCh2LmJlZ2luKCksdi5lbmQoKSk7CiAgICBmb3IgKGludCBpID0gMCA7IGkgPCB2LnNpemUoKS0xOyArK2kpCiAgICB7CiAgICAgICAgaWYodltpXT09dltpKzFdKSByZXR1cm4gdHJ1ZTsKICAgIH0KICAgIHJldHVybiBmYWxzZTsKfQoKdm9pZCBQcmludCAoIGludCBsZW5nICkKewogICAgdmVjdG9yPHBsbD4gdiA7CiAgICBmb3IgKGludCBpID0gMSA7IGkgPD0gcy5zaXplKCktbGVuZysxOyArK2kpCiAgICB7CiAgICAgICAgbGwgY3VyID0gR2V0KGksaStsZW5nLTEpOwogICAgICAgIHYucGIoe2N1cixpLTF9KTsKICAgIH0KICAgIHNvcnQodi5iZWdpbigpLHYuZW5kKCkpOwogICAgZm9yIChpbnQgaSA9IDAgOyBpIDwgdi5zaXplKCktMTsgKytpKQogICAgewogICAgICAgIGlmKHZbaV0uZmk9PXZbaSsxXS5maSkKICAgICAgICB7CiAgICAgICAgICAgIGNvdXQgPDwgcy5zdWJzdHIodltpXS5zZSxsZW5nKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KfQoKdm9pZCBEbygpCnsKICAgIGdldGxpbmUoY2luLHMpOwogICAgSW5pdCgpOwogICAgbGwgbCA9IDEgLCByID0gcy5zaXplKCk7CiAgICB3aGlsZShsPD1yKQogICAgewogICAgICAgIGxsIG1pZCA9IChsK3IpLzI7CiAgICAgICAgaWYoQ2hlY2sobWlkKSkgbCA9IG1pZCsxOwogICAgICAgIGVsc2UgciA9IG1pZCAtIDE7CiAgICB9CiAgICBpZihyPT0wKQogICAgewogICAgICAgIGNvdXQgPDwgLTE7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgUHJpbnQocik7Cn0KCnNpZ25lZCBtYWluICgpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCksIGNpbi50aWUoMCksIGNvdXQudGllKDApOwojZGVmaW5lIHRhc2sgInRlc3QiCmlmKGZvcGVuKHRhc2siLmlucCIsICJyIikpewogICAgICAgIGZyZW9wZW4odGFzayIuaW5wIiwgInIiLCBzdGRpbik7CiAgICAgICAgZnJlb3Blbih0YXNrIi5vdXQiLCAidyIsIHN0ZG91dCk7CiAgICB9CiAgICBpbnQgbnRlc3Q9MTsKICAgIHdoaWxlKG50ZXN0LS0pIERvKCk7CgogICAgY2Vycjw8IlxuVGltZSBlbGFwc2VkOiAiPDwxMDAwKmNsb2NrKCkvQ0xPQ0tTX1BFUl9TRUM8PCJtc1xuIjsKfQo=