#include <iostream>
#include <vector>
using namespace std;
vector<int> t;
void traceback(int total, int n,int len) {
if (n == 0||total == 0) {
for (int i = 0; i < t.size() - 1; i++) {
if (t[i] < t[i + 1])return;
}
for (int i = 0; i < t.size();i++) {
cout << t[i]+1 << ' ';
}
if (t.size() < len) {
for (int i = 0; i < len - t.size();i++) {
cout << 1 << ' ';
}
}
cout << endl;
return;
}
for (int i = total; i >=total/n&&i>0;i--) {
t.push_back(i);
traceback(total - i, n - 1, len);
t.pop_back();
}
}
int main() {
int m, n;
while (cin >> m >> n){
int len = n;
traceback(m - n, n,len);
}
return 0;
}