Numbers *k*-bonacci (*k* is integer, *k* &gt; 1) are a generalization of Fibonacci numbers and are determined as follows:
 -  *F*(*k*, *n*) = 0, for integer *n*, 1 ≤ *n* &lt; *k*; -  *F*(*k*, *k*) = 1; -  *F*(*k*, *n*) = *F*(*k*, *n* - 1) + *F*(*k*, *n* - 2) + ... + *F*(*k*, *n* - *k*), for integer *n*, *n* &gt; *k*. 
Note that we determine the *k*-bonacci numbers, *F*(*k*, *n*), only for integer values of *n* and *k*.

You've got a number *s*, represent it as a sum of several (at least two) distinct *k*-bonacci numbers.
The first line contains two integers *s* and *k* (1 ≤ *s*, *k* ≤ 10<sup class="upper-index">9</sup>; *k* &gt; 1).
x,y=map(int,input().split())
dp=[]
dp.append(0)
dp.append(1)

n=2
while 1:
    sm=0
    for k in range(n-1,n-y-1,-1):
        if k==0:
            break
        sm+=dp[k]
    if sm>=x:
        break
    dp.append(sm)
    n+=1

dp.reverse()
res=[]

n=0
while n<len(dp) and x>0:
    if x>=dp[n]:
        res.append(dp[n])
        x-=dp[n]
    n+=1

print(len(res))
print(*res)

