from itertools import izip, starmap, tee
def pairwise(iterable): # itertools recipe
a, b = tee(iterable)
next(b, None)
return izip(a, b)
def longest_duplicate(data):
n = len(data)
sa = sorted(xrange(n), key=lambda i: buffer(data, i)) # suffix array
def lcp_item(i, j): # find longest common prefix array item
start = i
while i < n and data[i] == data[i + j - start]:
i += 1
return i - start, start
size, start = max(starmap(lcp_item, pairwise(sa)), key=lambda x: x[0])
return data[start:start + size]
import sys
print longest_duplicate(sys.stdin.read())
ZnJvbSBpdGVydG9vbHMgaW1wb3J0IGl6aXAsIHN0YXJtYXAsIHRlZQoKZGVmIHBhaXJ3aXNlKGl0ZXJhYmxlKTogIyBpdGVydG9vbHMgcmVjaXBlCiAgICBhLCBiID0gdGVlKGl0ZXJhYmxlKQogICAgbmV4dChiLCBOb25lKQogICAgcmV0dXJuIGl6aXAoYSwgYikKCmRlZiBsb25nZXN0X2R1cGxpY2F0ZShkYXRhKToKICAgIG4gPSBsZW4oZGF0YSkKICAgIHNhID0gc29ydGVkKHhyYW5nZShuKSwga2V5PWxhbWJkYSBpOiBidWZmZXIoZGF0YSwgaSkpICMgc3VmZml4IGFycmF5CiAgICBkZWYgbGNwX2l0ZW0oaSwgaik6ICAjIGZpbmQgbG9uZ2VzdCBjb21tb24gcHJlZml4IGFycmF5IGl0ZW0KICAgICAgICBzdGFydCA9IGkKICAgICAgICB3aGlsZSBpIDwgbiBhbmQgZGF0YVtpXSA9PSBkYXRhW2kgKyBqIC0gc3RhcnRdOgogICAgICAgICAgICBpICs9IDEKICAgICAgICByZXR1cm4gaSAtIHN0YXJ0LCBzdGFydAogICAgc2l6ZSwgc3RhcnQgPSBtYXgoc3Rhcm1hcChsY3BfaXRlbSwgcGFpcndpc2Uoc2EpKSwga2V5PWxhbWJkYSB4OiB4WzBdKQogICAgcmV0dXJuIGRhdGFbc3RhcnQ6c3RhcnQgKyBzaXplXQoKaW1wb3J0IHN5cwpwcmludCBsb25nZXN0X2R1cGxpY2F0ZShzeXMuc3RkaW4ucmVhZCgpKQ==