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).
import io, os
input = io.BytesIO(os.read(0,os.fstat(0).st_size)).readline
def binarySearch(arr,l,r,val):
    while l<=r:
        mid=(l+r)//2
        if arr[mid]==val:
            ans=mid
            break
        elif arr[mid]<val:
            ans=mid
            l=mid+1
        else:
            r=mid-1
    return ans
def fib(k,s):
    arr=[]
    i=1
    temp=True
    while temp:
        if k>i:
            arr.append(0)
            if arr[-1]>=s:
                arr.pop()
                break
        elif k==i:
            arr.append(1)
            if arr[-1]>=s:
                arr.pop()
                break
        else:
            if i==k+1:
                num=sum(arr)
                arr.append(num)
                if arr[-1]>=s:
                    arr.pop()
                    break
            else:
                num+=arr[-1]
                num-=arr[-k-1]
                arr.append(num)
                if arr[-1]>=s:
                    arr.pop()
                    break
        i+=1
    return arr
s,k=list(map(int,input().split())) 
arr=fib(k,s)
l=len(arr)-1
ans=arr[l]
lis=[ans]
while ans<s:
    temp=s-ans
    ind=binarySearch(arr,0,l,temp)
    ans+=arr[ind]
    lis.append(arr[ind])
answer=[]
a=len(lis)
for i in range(1,a+1):
    answer.append(lis[-i])
print(a)
print(" ".join(str(x) for x in answer))
    
        
        
        
        
        
        
        