#include <bits/stdc++.h>   using namespace std;   const double PI = acos(-1.0);   const long long INF = 1000 * 1000 * 1000 + 7;   const long long LINF = INF * (long long)INF;   const int MOD = 1000 * 1000 * 1000 + 7;   const int MAX = 10000 + 47;   long long F[MAX];   vector<int> R;   int main() {     ios::sync_with_stdio(false);     cin.tie(0);     int s, k;     cin >> s >> k;     int p = 0;     F[0] = 1;     for (int i = (1); i < (MAX); i++) {       for (int j = (max(0, i - k)); j < (i); j++) {         F[i] += F[j];       }       if (F[i] > s) {         p = i;         break;       }     }     for (int i = (p)-1; i >= (0); i--) {       if (s >= F[i]) {         s -= F[i];         R.push_back(F[i]);       }     }     if ((int)R.size() == 1) R.push_back(0);     cout << (int)R.size() << endl;     for (int i = (0); i < ((int)R.size()); i++) {       cout << R[i] <<    ;     }     cout << endl;   }   