#include <bits/stdc++.h>   using namespace std;   long long s, k;   long long a[5000];   long long ans[5000];   int t;   int dfs(int n, int m) {     if (n == 0) {       if (t == 1) {         cout << 2 << endl;         cout << 0 <<     << ans[0] << endl;       } else {         cout << t << endl;         for (int i = t - 1; i >= 0; i--) cout << ans[i] <<    ;         cout << endl;       }       exit(0);     }     for (int i = m; i >= 0; i--) {       if (n >= a[i]) {         ans[t++] = a[i];         dfs(n - a[i], i - 1);         t--;       }     }   }   int main() {     cin >> s >> k;     int m = 0;     a[0] = 1;     for (int i = 1; a[i - 1] < s; i++) {       for (int j = i - 1; j >= 0 && j >= i - k; j--) a[i] += a[j];       m = i;     }     if (a[m] > s) m--;     dfs(s, m);   }   