#include <iostream>
#include <fstream>
#include <stack>
#include <algorithm>
#include <string>
#include <queue>
#include <vector>
#include <map>
#include <cmath>
#include <stdio.h>
using namespace std;
ifstream fin("combinari.in");
ofstream fout("combinari.out");
int sol[18], n, k;
void afis() {
for (int i = 1; i <= k; ++i)
fout << sol[i] << " ";
fout << "\n";
}
int valid(int poz) {
for (int i = 1; i < poz; ++i)
if (sol[poz] <= sol[i])
return 0;
return 1;
}
void back(int poz) {
for (int i = 1; i <= n; ++i) {
sol[poz] = i;
if (valid(poz)) {
if (poz == k)
afis();
else
back(poz + 1);
}
}
}
int main() {
fin >> n >> k;
back(1);
return 0;
}