Zvonimir

한 글자 입력하거나 이미 입력한 연속 부분을 복사해 붙이는 두 연산으로 문자열 X를 만드는 최소 연산 횟수를 구한다.

어려움8동적 계획법문자열정렬완전 탐색아직 제출이 없습니다시간 제한2초메모리 제한128 MB

문제

고란은 노래 부르기를 좋아한다. 가장 좋아하는 노래는 Kletva kralja Zvonimira인데, 가사를 다 외웠는지 확신이 서지 않아 가사를 컴퓨터에 옮겨 적어 보기로 했다. 가사는 영어 소문자로만 이루어진 문자열 XX이다.

고란이 쓸 수 있는 연산은 두 가지뿐이고, 어느 쪽이든 한 번으로 센다.

  1. 아직 적지 않은 다음 글자 하나를 직접 입력한다.
  2. 지금까지 적어 놓은 텍스트에서 연속한 한 부분을 골라 복사한 다음, 그 복사본을 텍스트 맨 뒤에 붙인다. 고르는 부분의 길이와 위치에는 제한이 없다.

두 번째 연산에서 복사하는 부분은 그 연산을 하기 직전의 텍스트 안에 통째로 들어 있어야 한다. 붙여 넣는 도중에 늘어난 글자를 다시 복사 대상에 포함할 수는 없다.

문자열 XX를 처음부터 끝까지 완성하는 데 필요한 최소 연산 횟수를 구하여라.

입력

첫째 줄에 고란이 옮겨 적으려는 문자열 XX가 주어진다. XX는 영어 소문자로만 이루어져 있으며, 길이는 1X2000001 \le |X| \le 200\,000을 만족한다.

출력

첫째 줄에 고란이 XX 전체를 적는 데 필요한 최소 연산 횟수 SS를 출력한다.

참고

XX가 judinisinovi이면 j, u, d, i, n, i, s, in, o, v, i 순서로 적어서 1111번 만에 끝낼 수 있다. 여덟 번째 연산에서는 앞서 적어 둔 in을 복사해 뒤에 붙인다.