题目描述
Problem Statement
Snuke has a string x of length N.
Initially, every character in x is 0.
Snuke can do the following two operations any number of times in any order:
- Choose A consecutive characters in x and replace each of them with 0.
- Choose B consecutive characters in x and replace each of them with 1.
Find the number of different strings that x can be after Snuke finishes doing operations.
This count can be enormous, so compute it modulo (10^9+7).
Input
Input is given from Standard Input in the following format:
N A B
Output
Print the number of different strings that x can be after Snuke finishes doing operations, modulo (10^9+7).
Constraints
- $1 \leq N \leq 5000$
- $1 \leq A,B \leq N$
- All values in input are integers.
Sample Input 1
4 2 3
Sample Output 1
11
For example, x can be 0011 or 1111 in the end, but cannot be 0110.
Sample Input 2
10 7 2
Sample Output 2
533
Sample Input 3
1000 100 10
Sample Output 3
828178524
输入格式
见题面 Input 部分
输出格式
见题面 Output 部分