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

Solution:
import java.io.PrintWriter;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		new Main().run();
	}

	Scanner in;
	PrintWriter out;

	void run() {
		in = new Scanner(System.in);
		out = new PrintWriter(System.out);
		try {
			solve();
		} finally {
			out.close();
		}
	}

	int[] prefix_f(String s) {
		int[] res = new int[s.length()];
		for (int i = 1; i < res.length; i++) {
			int j = res[i - 1];
			while (j > 0 && s.charAt(j) != s.charAt(i)) {
				j = res[j - 1];
			}
			res[i] = j + (s.charAt(i) == s.charAt(j) ? 1 : 0);
		}

		return res;
	}

	void solve() {
		String s = in.next();
		int[] z = prefix_f(s);
		boolean[] findStr = new boolean[s.length()];
		for (int i = 0; i < z.length - 1; i++) {
			findStr[z[i]] = true;
		}
		int len = z[z.length - 1];
		while (len > 0) {
			if (findStr[len]) {
				break;
			}
			len = z[len - 1];
		}
		if (len == 0) {
			out.println("Just a legend");
		} else {
			out.println(s.substring(0, len));
		}

	}

}