#include <iostream>
#include <string>

void  composition(int n, int k, int last, std::string s) {
	if (k == 0) {
		if (n == 0)
			std::cout << s << std::endl;
		return;
	}
	composition(n - last + 1, k - 1, last - 1, s + ' ' + std::to_string(last - 1));
	composition(n - last, k - 1, last, s + ' ' + std::to_string(last));
	composition(n - last - 1, k - 1, last + 1, s + ' ' + std::to_string(last + 1));
}

int main()
{
	int n = 3;
	int k = 6;
	for (int l = (2 * n -  k * (k - 1)) / (2 * k);
		     l <= (2 * n + k * (k - 1) + 2 * k - 1) / (2 * k); l++)
		composition(n - l, k - 1, l, std::to_string(l));
}