CSES - Aalto Competitive Programming 2024 - wk12 - Mon - Practice Sessions
  • Time limit: 2.00 s
  • Memory limit: 512 MB

Uoveli is designing a sequence of programming practice sessions. The practice plan is represented as a sequence of positive integers a_1, a_2, \dots, a_m, where a_i represents the difficulty level for day i.

For the plan to be efficient, it must satisfy the following requirements:

  • Adjacent days must have different difficulty levels (a_i \ne a_{i+1}).
  • Each day's difficulty must alternate between increasing and decreasing.
    If a_i < a_{i + 1}, then a_{i + 1} > a_{i + 2}. If a_i > a_{i + 1}, then a_{i + 1} < a_{i + 2}.
  • The sum of all difficulty levels must equal n.
  • The first day's difficulty level is fixed at k.

The number of days m is not limited

Your task is to calculate the number of different efficient practice plans modulo 10^9 + 7.

Input

The first line contains numbers n and k, representing the sum of difficulty levels and the difficulty level of the first day.

Output

Output a single integer: total number of possible sequences of sessions modulo 10^9 + 7.

Constraints

1 \le k \le n \le 5000

Example

Input:

6 2

Output:

4

Input:

3 3

Output:

1