Processing math: 100%

10313 - Pay the Price

從前有一個國家那裡的人民有非常有趣的習慣。有些人懶惰,有些人富有。有些人非常平窮,有些人小氣。明顯的有些有錢人小氣 (貧窮人絕不會小氣,因為他本來就沒多少東西) 並且懶惰,但是貧窮人也都懶惰 (這也是他們永遠都貧窮的原因)。以下的事在這個國家都是真實的:

a) 由於有錢人小氣,沒有任何東西的價格會超過 300 元。
b) 由於貧窮人懶惰,每件東西的價格都是整數。(連乞丐要錢都至少要 1 元)
c) 硬幣的面值從 1300 元,所以那些懶惰的有錢人可以只用一個硬幣付任何的價錢。

你的任務是找出一個人要付一個價錢有多少種方法,條件是使用硬幣的數目是被限定的。例如:要用 3 個硬幣來付 6 元有 3 種方法:1+1+41+2+32+2+2。依此類推,一個人付 6 元最多使用 6 個硬幣的方法有 11 種。

Input

每組測試資料 1 列,每列可能含有 123 個整數。其中第一個整數一定是 N (0N300),代表要付的錢是多少。其他的數均大於等於 0,小於等於 1000

Output

對每組測試資料輸出一列,代表付 N 元有多少種方法,分為以下三種:

如果該組測試資料僅有 1 個整數,請輸出付 N 元的方法有多少種 (用多少個硬幣不拘)。

如果該組測試資料有 2 個整數 NL1,請輸出付 N 元且最多用 L1 個硬幣的方法有多少種。

如果該組測試資料有 3 個整數 NL1L2,請輸出付 N 元且最少用 L1 個硬幣,最多用 L2 個硬幣的方法有多少種。在這裡 L1 一定小於等於 L2

Sample Input

6
6 34
6 2 5
6 1 6
0 
0 0 
0 1 
0 0 0 
0 0 1 
0 1 1 
0 1 2 
200 30 75 

Sample Output

11
7
9
11
1
1
1
1
1
0
0
2347163627458