import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class didi{ static StringBuilder sb = new StringBuilder(); static int n, m; static boolean[] visit; static int[] arr; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); n = Integer.parseInt(st.nextToken()); m = Integer.parseInt(st.nextToken()); visit = new boolean[n]; arr = new int[m]; dfs(0,0); System.out.println(sb); } private static void dfs(int depth, int start) { if (depth == m) { System.out.println(" depth :"+depth+" start :"+start+" arr :"+ Arrays.toString(arr)); for (int val : arr) { sb.append(val).append(" "); } sb.append("\n"); return; } for (int i = start; i < n; i++) { System.out.println( "i :"+i+" depth :"+depth+" start :"+start+" arr :"+ Arrays.toString(arr)+" visited :"+Arrays.toString(visit)); if (!visit[i]) { visit[i] = true; arr[depth] = i + 1; dfs(depth + 1, i+1); visit[i] = false; } } } }