Problem: Asterix, Obelix and their temporary buddies Suffix and Prefix has finally found the Harmony temple. However, its doors were firmly locked and even Obelix had no luck opening them.

A little later they found a string s, carved on a rock below the temple's gates. Asterix supposed that that's the password that opens the temple and read the string aloud. However, nothing happened. Then Asterix supposed that a password is some substring t of the string s.

Prefix supposed that the substring t is the beginning of the string s; Suffix supposed that the substring t should be the end of the string s; and Obelix supposed that t should be located somewhere inside the string s, that is, t is neither its beginning, nor its end.

Asterix chose the substring t so as to please all his companions. Besides, from all acceptable variants Asterix chose the longest one (as Asterix loves long strings). When Asterix read the substring t aloud, the temple doors opened. 

You know the string s. Find the substring t or determine that such substring does not exist and all that's been written above is just a nice legend.

Input

You are given the string s whose length can vary from 1 to 106 (inclusive), consisting of small Latin letters.

Output

Print the string t. If a suitable t string does not exist, then print "Just a legend" without the quotes.

Examples

Input

fixprefixsuffix


Output

fix

Input

abcdabc


Output

Just a legend

Solution (in PYTHON3):

Solution:
# n, p, q = [int(x) for x in input().split(" ")]
# string = input()
# s = list()
# for i in range(n + 1):
#     for j in range(n + 1):
#         if n == (i * p + j * q):
#             print(i + j)
#             index = 0
#             for k in range(i):
#                 s.append(string[index:index + p])
#                 index += p
#             for k in range(j):
#                 s.append(string[index:index + q])
#                 index += q
#             for k in s:
#                 print(k)
#             exit()
#
# print(-1)
# from collections import Counter
# import operator
#
# n = int(input())
# string = input()
# lst = ['A', 'G', 'C', 'T']
# count = Counter(string)
# questions = None
# if count.get('?'):
#     questions = count.pop("?")
# try:
#     temp_mx = max(count.items(), key=operator.itemgetter(1))[1]
# except:
#     pass
# if not questions:
#     for i in lst:
#         if i not in count:
#             print('===')
#             exit()
#     for k, v in count.items():
#         if v < temp_mx:
#             print('===')
#             exit()
#     print(string)
#     exit()
# if n % 4 != 0:
#     print('===')
#     exit()
# mx = n // 4
# if questions == n:
#
#     temp = n // 4
#     for i in lst:
#         string = string.replace("?", i, temp)
#     print(string)
#     exit()
# if n < 4 * temp_mx:
#     print('===')
#     exit()
# for i in lst:
#     if i not in count:
#         count[i] = 0
# for k, v in count.items():
#     if v < mx:
#         temp = mx - v
#         string = string.replace("?", k, temp)
#         v += temp
# print(string)


def get_prefix(string):
    lst = [0]*len(string)
    index = 0
    for i in range(1, len(string)):
        while index > 0 and string[index] != string[i]:
            index = lst[index - 1]
        if string[index] == string[i]:
            index += 1
            lst[i] = index
        else:
            lst[i] = index
    return lst


in_c = input()
lst = get_prefix(in_c)
length = lst[len(in_c) - 1]
found = None
if length != 0:
    for j in range(2):
        for i in range(1, len(in_c) - 1):
            if length == lst[i]:
                found = True
                break
        if not found:
            length = lst[length-1]
            if length == 0:
                break
        else:
            break
if not found or length == 0:
    print("Just a legend")
else:
    print(in_c[0:length])