- 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