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).
s, k = map(int, input().split())
fib_n = [0,1]
while(fib_n[-1] <= s):
    fib_n.append(sum(fib_n[-1-i] for i in range(min(k,len(fib_n)))))
del fib_n[1]
del fib_n[-1]
foundSeries = []
def findSeries(total, numbers):
    global foundSeries
    if total == 0:
        return True
    elif len(numbers) ==0 or total<0:
        return False
    else:
        if(findSeries(total-numbers[0], numbers[1:])):
            foundSeries.append(numbers[0])
            return True
        elif(findSeries(total, numbers[1:])):
            return True
        else:
            return False

findSeries(s, fib_n)
print(len(foundSeries))
for i in foundSeries:
    print(i, end=" ")