#include<iostream>
using namespace std;
int n, m;
void dfs(int u, int sum, int state) //*u表示枚举到了第几个数, sum当前选了多少个数, state表示当前选了哪些数
{
if( sum + n - u< m ) return; //* 表示凑都凑不齐撑死都达不到m
if(sum == m)
{
for(int i=0; i<n; i++)
if(state>>i & 1)
cout<<i+1<<' ';
cout<<endl;
return;
}
dfs(u+1, sum+1, state | 1<<u); //* 要求升序,则第一个排[先选方案]
dfs(u+1, sum, state);
}
int main()
{
cin >> n >> m;
dfs(0, 0, 0);
}