#include<vector>
#include<iostream>
using namespace std;
void f(int m, int n, int c, vector<int>& vec, vector<vector<int>>&re)
{
if (m == n ) {
if(c==0)
re.push_back(std::move(vec));
return; }
for (int i = 0; i <= c; i++)
{
vector<int> v(vec);
v.push_back(i);
f(m + 1, n, c - i, v, re);
}
}
int main()
{
int n, c;
cin >> n >> c;
vector<int> vec;
vector<vector<int>> re;
f(0, n, c, vec, re);
for (auto &c : re)
{
for (auto c2 : c)
cout << c2 << " ";
cout << endl;
}
return 0;
}
//这个差不多对了,但是应该可以改进