문제
팬케이크 가게에서는 새로운 종류의 팬케이크를 만들었다. 한 면("행복한 면")에는 초코칩으로 만들어진 행복한 얼굴을 가지고 있고, 다른 면에는 아무것도 ("빈 면") 없다.
당신은 수석 요리사이다. 팬케이크는 뜨거운 표면 위에 한 줄로 만들어진다. 가게에서는 효율성 극대화하기 위해 K개의 연속한 팬케이크를 뒤집는 대형 뒤집게를 제공했다. 즉, K개의 팬케이크를 행복한 면의 팬케이크는 빈 면의 팬케이크로 바꾸고, 빈 면의 팬케이크는 행복한 면으로 바꾼다. 단, 팬케이크의 왼쪽에서 오른쪽 순서는 바뀌지 않는다.대형 뒤집게를 사용하여 한 번에 K 개보다 적은 팬케이크를 뒤집을 수 없다. 예를 들어, 첫 번째부터 K 번째까지 팬케이크를 뒤집을 수 있지만 첫 번째부터 (K - 1)번째까지 팬케이크는 뒤집을 수 없다.
팬케이크의 현재 상태에서 모든 팬케이크를 행복한 면으로 만드려면 필요한 대형 팬케이크 뒤집게의 최소 사용 횟수를 구하라.
입력
한 줄은 스트링 S와 정수 K로 구성 되어있다.
스트링 S는 + ( 행복한 면 ) 또는 – ( 빈 면 ) 로 나타낸다.
출력
팬케이크를 모두 행복한 면으로 만들 수 있다면 최소 횟수를 출력하고,그렇지 않다면 IMPOSSIBLE을 출력하시오.
< 제약조건 >
2 ≤ K ≤ S의 길이.
Small dataset : 2 ≤ S의 길이 ≤ 10.
Large dataset : 2 ≤ S의 길이 ≤ 1000.
예제 #1
---+-++- 3
3
예제 #2
-+-+- 4
IMPOSSIBLE
출처
codejam2017