팰린드롬 인코딩

시간 제한2초메모리 제한128 MB

문제

준규는 이진 문자열을 짧게 만드는 인코딩 규칙을 만들었다.

이 인코딩은 0과 1로만 이루어진 문자열에 적용한다. 한 번의 연산은 다음과 같다.

  1. 현재 문자열에서 길이가 짝수인 팰린드롬 부분 문자열을 하나 고른다. 팰린드롬은 앞에서 읽어도 뒤에서 읽어도 같은 문자열이다.
  2. 고른 부분 문자열의 뒤쪽 절반을 지운다. 예를 들어 0110을 고르면 뒤쪽 절반인 10을 지우고 01만 남긴다.
  3. 더 이상 고를 수 있는 짝수 길이 팰린드롬 부분 문자열이 없을 때까지 원하는 순서로 연산을 반복할 수 있다.

문자열 S가 주어졌을 때, 이 인코딩으로 만들 수 있는 결과 중 가장 짧은 길이를 구하라.

입력

첫째 줄에 0과 1로만 이루어진 문자열 S가 주어진다.

  • 1 <= |S| < 50

출력

첫째 줄에 인코딩으로 만들 수 있는 결과의 최소 길이를 출력한다.

힌트

첫 번째 공개 테스트에서는 뒤쪽의 1001을 고르면 문자열이 01110이 된다. 이어서 11을 고르면 0110이 되고, 마지막으로 0110을 고르면 01만 남아 길이는 2가 된다.