분산 괄호
시간 제한1초메모리 제한1024 MB
길이가 n이고 깊이가 정확히 k인 분산 괄호 수열의 개수를 10^9+9로 나눈 나머지로 구합니다.
문제
산술식의 계산 순서는 보통 괄호를 어떻게 배치했는지로 정해진다. 예를 들어 가 있다. 식에서 괄호를 제외한 모든 원소를 지우면 남은 기호들이 괄호 수열 를 이룬다. 문자 0을 추가해도 수열이 깨지지 않는다고 가정한다. 이런 수열을 분산 괄호 수열이라고 부른다. 다음과 같이 정의할 수도 있다.
- 빈 문자열은 분산 괄호 수열이다.
- 와 가 분산 괄호 수열이면 , , , 도 분산 괄호 수열이다.
분산 괄호 수열의 깊이는 접두사에서 여는 괄호 수와 닫는 괄호 수의 차이의 최댓값이다. 의 접두사는 의 끝에서 문자를 지워서 얻은 문자열이다. 예를 들어 의 접두사는 빈 문자열, , , , , 이다. 의 깊이는 2이다. 접두사 에는 여는 괄호가 3개, 닫는 괄호가 1개 있기 때문이다.
길이가 이고 깊이가 인 분산 괄호 수열의 개수를 구하시오.
입력
한 줄에 공백으로 구분된 정수 과 가 주어진다 (, ).
출력
길이가 이고 깊이가 인 분산 괄호 수열의 개수를 로 나눈 나머지를 출력한다.