importjava.util.*;publicclassMain{publicstaticvoiddfs(int u,int n,boolean[] st){if(u > n){for(int i =1; i <= n; i++){if(st[i]){System.out.print(i +" ");}}System.out.println();return;}
st[u]=false;dfs(u +1, n, st);
st[u]=true;dfs(u +1, n, st);}publicstaticvoidmain(String[] args){Scanner scanner =newScanner(System.in);int n = scanner.nextInt();boolean[] st =newboolean[n +1];dfs(1, n, st);}}
importjava.util.*;publicclassMain{publicstaticvoiddfs(int u,int st,int n,int m,int[] path){if(u > m){for(int i =1; i <= m; i++){System.out.print(path[i]+" ");}System.out.println();return;}for(int i = st; i <= n; i++){
path[u]= i;dfs(u +1, i +1, n, m, path);}}publicstaticvoidmain(String[] args){Scanner scanner =newScanner(System.in);int n = scanner.nextInt();int m = scanner.nextInt();int[] path =newint[n +1];dfs(1,1, n, m, path);}}