#include <iostream>
using namespace std;

void print(const int *arr, int n) {
	for(int i = 0; i < n; ++i)
		cout << arr[i] << " ";
	cout << endl;
}

void printIncreasingNumbers(int n, int k) {
	if (k == 0) return;
	int *startNumArr = new int[k];
	for(int i = 0; i < k; ++i) startNumArr[i] = 1 + i;
	
	int curPos = k - 1;
	while(curPos >= 0) {
		print(startNumArr, k);
		while(curPos >= 0) {
			++startNumArr[curPos];
			if(n - startNumArr[curPos] >= k - curPos - 1) {
				for(int i = 1; i <= k - curPos - 1; ++i)
					startNumArr[curPos + i] = startNumArr[curPos] + i;
				curPos = k - 1; break;
			}
			else
				--curPos;
		}
	}
	delete [] startNumArr;
}

int main() {
	int n = 7, k = 3;
	printIncreasingNumbers(n, k);
	return 0;
}