import java.io.InputStreamReader;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(new InputStreamReader(System.in));
int N = scanner.nextInt();
int M = scanner.nextInt();
int[] arr = new int[N + 1];
for (int i = 1; i <= N; i++) arr[i] = i;
boolean[] visited = new boolean[N + 1];
NM(arr, M, visited, 0, "");
}
public static void NM(int[] arr, int M, boolean[] visited, int depth, String result) {
if (depth == M) {
System.out.println(result);
return;
}
for (int i = 1; i < arr.length; i++) {
if (!visited[i]) {
visited[i] = true;
NM(arr, M, visited, depth + 1, result + arr[i] + " ");
visited[i] = false;
}
}
}
}
>>input : 4 2
1 2
1 3
1 4
2 1
2 3
2 4
3 1
3 2
3 4
4 1
4 2
4 3
import java.io.InputStreamReader;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(new InputStreamReader(System.in));
int N = scanner.nextInt();
int M = scanner.nextInt();
int[] arr = new int[N + 1];
for (int i = 1; i <= N; i++) arr[i] = i;
NM(arr, M, 1, 0, "");
}
public static void NM(int[] arr, int M, int start, int depth, String result) {
if (depth == M) {
System.out.println(result);
return;
}
for (int i = start; i < arr.length; i++) {
NM(arr, M, i + 1, depth + 1, result + arr[i] + " ");
}
}
}
>> input: 4 2
1 2
1 3
1 4
2 3
2 4
3 4
import java.io.InputStreamReader;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(new InputStreamReader(System.in));
int N = scanner.nextInt();
int M = scanner.nextInt();
int[] arr = new int[N + 1];
for (int i = 1; i <= N; i++) arr[i] = i;
boolean[] visited = new boolean[N + 1];
NM(arr, M, visited, 0, "");
}
public static void NM(int[] arr, int M, boolean[] visited, int depth, String result) {
if (depth == M) {
System.out.println(result);
return;
}
for (int i = 1; i < arr.length; i++) {
visited[i] = true;
NM(arr, M, visited, depth + 1, result + arr[i] + " ");
visited[i] = false;
}
}
}
>> input: 4 2
1 1
1 2
1 3
1 4
2 1
2 2
2 3
2 4
3 1
3 2
3 3
3 4
4 1
4 2
4 3
4 4
import java.io.InputStreamReader;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(new InputStreamReader(System.in));
int N = scanner.nextInt();
int M = scanner.nextInt();
int[] arr = new int[N + 1];
for (int i = 1; i <= N; i++) arr[i] = i;
NM(arr, M, 1, 0, "");
}
public static void NM(int[] arr, int M, int start, int depth, String result) {
if (depth == M) {
System.out.println(result);
return;
}
for (int i = start; i < arr.length; i++) {
NM(arr, M, i, depth + 1, result + arr[i] + " ");
}
}
}
input >> 4 2
1 1
1 2
1 3
1 4
2 2
2 3
2 4
3 3
3 4
4 4