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 PYTHON):

Solution:
# given a string s,
# exits one prefix of s equals to one suffix of s, and
# also equals to one of its obelix

def cal_pre(s):
	pre = {}
	prevalue=[]
	pre.setdefault(0,-1)
	prevalue.append(-1)
	j = -1
	for i in range(1,len(s),1):
		while j > -1 and s[i] != s[j + 1]:
			j = pre[j]      # This is the most important step
		if s[i] == s[j + 1]:
			j += 1
		pre.setdefault(i,j)
		prevalue.append(j)
	return pre,prevalue

def stat(pre,m):
	path = []
	i = m - 1
	while pre[i] != -1:
		path.append(pre[i])
		i = pre[i]
	# print path
	# path.append(pre[i])
	return path

def find(elem,findlist):
	for x in findlist:
		if elem == x:
			return True
	return False

if __name__ == '__main__':
	s = raw_input()
	m = len(s)
	pre,findmidfix = cal_pre(s)
	# findmidfix = [pair[1] for pair in pre.items()]
	findlist = findmidfix[:m - 1]
	findset=set(s)

	path = stat(pre,m)
	flag = -1
	# print findlist
	if len(findset) == 1:
		#psfix = len(s) - 3
		#flag = psfix
		if len(s) - 3 < 0: print "Just a legend"
		else: print s[:len(s)-2]
		# print flag
		# print findset
	else:
		for i in range(len(path)): # psfix means the string can be both prefix and suffix
			psfix = path[i]
			if i == 0 and find(psfix,findlist):
				flag = psfix
				break
			if i != 0:
				flag = psfix
				break
	
		if flag > -1:
			print s[:psfix + 1]
		else: print "Just a legend"