Chao Man is going to take part in the winter training. As his coach, you need to arrange problems for him to solve.
 You have a problem list consisting of 
 
 )
 problems. For the 

 problem, its difficulty is 
 
 )
. 
 You need to cut the problem list into any number of nonempty problemsets.
 Formally speaking, a plan that cuts the problem list into 

 nonempty problemsets can be described as an array 

 of length 

, where 

 and problemset 

 consists of 

 problem 
)
. 
 Suppose you have 

 problemsets after the cutting. You are going to feed problemset 

 to 
Chao Man at day 

.
 Since 
Chao Man is a superman, he evaluates the difficulty of a problemset as the minimum difficulty of all problems it contains.  
Chao Man loves variation. He has a endurance of value 
 
 )
. If 
Chao Man discovers that there exists two adjacent days such that the absolute difference of the two problemsets' difficulty is less than 

, he will consider the winter training very boring. 
 You don't want to let
 Chao Man down. How many ways can you cut the problem list so that 
Chao Man will not consider the winter training very boring? Please output the answer modulo 

.