시간 제한메모리 제한제출정답맞힌 사람정답 비율
5 초 1024 MB511100.000%

문제

Du och din kumpan Acsel har stulit en sträng av längd $n$ från er fiende Waxel. Ni vill nu dela upp strängen så att ni får exakt lika många av varje bokstav var. Det är dock dyrt att dela en sträng, därför är ditt uppdrag att hitta det minsta antalet delningar som krävs för att ni ska kunna dela lika på bytet.

Om till exempel strängen var "acabbc", så kan ni dela upp strängen i "a+cab+bc". Då kan du ta den första och sista biten medan Acsel tar mittenbiten. Här krävdes det två delningar, och det är också det minsta antalet i det här fallet.

입력

En rad med en sträng av längd $n$, bestående av bokstäverna 'a', 'b', ... , 'a' $+(k-1)$. För gränser på $n$ och $k$, se nedan.

출력

Ett tal, det minsta antalet delningar som krävs. Om det inte är möjligt att dela exakt lika på bytet, skriv "$-1$".

서브태스크

번호배점제한
110

$4 \le n \le 10^5$ , $k = 2$

220

$4 \le n \le 10^5$ , $k = 3$

310

$4 \le n \le 20$ , $2 \leq k \leq 10$

415

$4 \le n \le 40$ , $2 \leq k \leq 6$

545

$4 \le n \le 40$ , $2 \leq k \leq 12$

예제 입력 1

abab

예제 출력 1

1

예제 입력 2

acabbc

예제 출력 2

2

예제 입력 3

abac

예제 출력 3

-1

출처

Olympiad > Swedish Olympiad in Informatics > 2018 > KATT 1 ?번

  • 문제를 만든 사람: Måns Magnusson

채점 및 기타 정보

  • 예제는 채점하지 않는다.