문자열 T가 주어진다. 문자열 S에 대해 L(S)는 S의 길이, C(S)는 T 안에서 S가 등장하는 횟수라고 하고, S의 비용을 다음과 같이 정의한다.
F(S)=L(S)×C(S)
T 안에서 S가 등장한다는 것은 S가 T의 부분문자열로 나타난다는 뜻이다. 등장 위치는 서로 겹쳐도 되고, 시작 위치가 다르면 다른 등장으로 센다. 예를 들어 T = aaaaa, S = aaa이면 S는 T 안에서 3번 등장하므로 F(S)=3×3=9다.
T의 부분문자열 중에서 비용이 가장 큰 값을 구하라.
첫째 줄에 알파벳 소문자로만 이루어진 문자열 T가 주어진다. T의 길이는 1 이상 100,000 이하다.
T의 모든 부분문자열 S에 대한 F(S)의 최댓값을 한 줄에 출력한다.