계단 오르기 4
계단은 0번째 칸부터 \(N\)번째 칸까지 번호가 붙어 있다. 0번째 칸에서 출발해 \(N\)번째 칸에 도착하려고 한다.
한 번에 1칸, 2칸 또는 3칸을 올라갈 수 있다. 이동 순서가 다르면 서로 다른 방법으로 센다. 예를 들어 1 2와 2 1은 서로 다른 방법이다.
이번에는 반드시 밟아야 하는 계단이 있다. 해당 계단을 뛰어넘는 것은 밟은 것으로 보지 않는다. 지정된 계단 모두에 도착한 뒤, 총 \(K\)번 이하의 이동으로 \(N\)번째 칸에 도착하는 방법의 수를 구하여라.
입력
첫째 줄에 \(N\), \(K\), 반드시 밟아야 하는 계단의 수 \(B\)가 공백으로 구분되어 주어진다.
둘째 줄에는 반드시 밟아야 하는 계단의 번호 \(B\)개가 공백으로 구분되어 주어진다. \(B=0\)이면 둘째 줄은 주어지지 않는다.
출력
조건을 만족하는 방법의 수를 출력한다.
제한
- \(1 \le N \le 15\)
- \(1 \le K \le 15\)
- \(0 \le B \le N-1\)
- 계단 번호는 서로 다르며, 1 이상 \(N-1\) 이하이다.
예제 입력
3 3 1
2
예제 출력
2
예제 설명
1 1 1과 2 1은 2번째 계단에 도착한다. 1 2와 3은 이 계단을 뛰어넘거나 밟지 않으므로 제외된다.
코멘트