Codeforces Round 164 (Div. 2)
D
Wall Bars
Codeforces
2300
原题
← CE →
翻译中…

Manao is working for a construction company. Recently, an order came to build wall bars in a children's park. Manao was commissioned to develop a plan of construction, which will enable the company to save the most money.

翻译中…

After reviewing the formal specifications for the wall bars, Manao discovered a number of controversial requirements and decided to treat them to the company's advantage. His resulting design can be described as follows:

翻译中…
  • Let's introduce some unit of length. The construction center is a pole of height $*n*$.
  • At heights $1, 2, ..., *n*$ exactly one horizontal bar sticks out from the pole. Each bar sticks in one of four pre-fixed directions.
  • A child can move from one bar to another if the distance between them does not exceed $*h*$ and they stick in the same direction. If a child is on the ground, he can climb onto any of the bars at height between $1$ and $*h*$. In Manao's construction a child should be able to reach at least one of the bars at heights $*n* - *h* + 1, *n* - *h* + 2, ..., *n*$ if he begins at the ground.
翻译中…

image The figure to the left shows what a common set of wall bars looks like. The figure to the right shows Manao's construction

翻译中…

Manao is wondering how many distinct construction designs that satisfy his requirements exist. As this number can be rather large, print the remainder after dividing it by $1000000009 (10^{9} + 9)$. Two designs are considered distinct if there is such height $*i*$, that the bars on the height $*i*$ in these designs don't stick out in the same direction.

翻译中…

Input

翻译中…

A single line contains two space-separated integers, $*n*$ and $*h*$ ($1 ≤ *n* ≤ 1000$, $1 ≤ *h* ≤ *min*(*n*, 30)$).

翻译中…

Output

翻译中…

In a single line print the remainder after dividing the number of designs by $1000000009 (10^{9} + 9)$.

翻译中…

Note

翻译中…

Consider several designs for $*h* = 2$. A design with the first bar sticked out in direction $*d*_{1}$, the second — in direction $*d*_{2}$ and so on ($1 ≤ *d*_{*i*} ≤ 4$) is denoted as string $*d*_{1}$$*d*_{2}$$...$$*d*_{*n*}$.

翻译中…

Design "1231" (the first three bars are sticked out in different directions, the last one — in the same as first). A child can reach neither the bar at height 3 nor the bar at height 4.

翻译中…

Design "414141". A child can reach the bar at height 5. To do this, he should first climb at the first bar, then at the third and then at the fifth one. He can also reach bar at height 6 by the route second $→$ fourth $→$ sixth bars.

翻译中…

Design "123333". The child can't reach the upper two bars.

翻译中…

Design "323323". The bar at height 6 can be reached by the following route: first $→$ third $→$ fourth $→$ sixth bars.

翻译中…

样例

Input #1
5 1
Output #1
4
InputCopy OutputCopy
Input #2
4 2
Output #2
148
InputCopy OutputCopy
Input #3
4 3
Output #3
256
InputCopy OutputCopy
Input #4
5 2
Output #4
376
InputCopy OutputCopy
题目信息
题号
268D
时间限制
4 s
内存限制
512 MB
标签
动态规划

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。