순례자와 마지막 길
Time Limit: 2 SecMemory Limit: 1024 MiB

문제

먼 옛날, 대륙 곳곳에는 성지를 향해 걷는 순례자들이 있었다. 순례의 길은 결코 안전하지 않았고, 끝까지 살아남기 위해서는 정해진 규칙을 반드시 따라야 했다.
특히 마지막 구간인 “마지막 길” 에 들어설 때는, 길의 수호자들이 전해 내려온 고대의 규율을 엄격히 적용했다.

마지막 길에 들어서기 전, 모든 순례자들은 일렬로 서게 된다.
이 중 한 명이 인도자로 선택되며, 인도자를 중심으로 일부 순례자들만이 마지막 길에 함께 들어갈 수 있다.

고대 문헌에 따르면, 마지막 길을 통과하기 위한 조건은 다음과 같다.

  1. 선택된 순례자들의 수는 반드시 홀수 명이어야 한다.
  2. 선택된 순례자들은 원래 줄에서 연속한 구간을 이루어야 한다.
  3. 인도자는 선택된 구간의 정중앙에 서 있어야 한다.
  4. 선택된 구간에서 왼쪽에서 번째 순례자의 상징 문자(이름의 첫 글자)는,
    전체 줄에서 왼쪽에서 번째 순례자의 상징 문자와 반드시 같아야 한다.

이 모든 조건을 만족하면, 그 인도자는 해당 순례자들과 함께 마지막 길을 안전하게 통과할 수 있다.

전통에 따라, 각 순례자가 인도자로 선택되었을 때는 가능한 한 가장 많은 순례자를 데리고 가려 한다.
당신의 임무는 각 순례자가 인도자가 되었을 때, 규칙을 만족하며 데려갈 수 있는 순례자 수의 최댓값을 구하는 것이다.

입력

  • 첫 줄에 문자열 가 주어진다.
  • 는 순례자들이 줄에 서 있는 순서를 나타내며, 각 문자는 해당 순례자의 상징 문자이다.
  • 문자열의 길이는 이다.
  • 는 소문자 라틴 알파벳으로만 이루어져 있다.

출력

  • 첫 줄에 개의 정수를 공백으로 구분하여 출력한다.
  • 번째 수는 번째 순례자가 인도자가 되었을 때,
    마지막 길로 함께 들어갈 수 있는 순례자 수의 최댓값을 의미한다.
  • 조건을 만족하는 구간이 존재하지 않는 경우 0을 출력한다.
Example Input 1
aaaaaa
Example Output 1
1 3 5 5 3 1
Language-Specific Restrictions