import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main {
static int N, M;
static int[] arr;
static boolean[] visited;
static BufferedWriter bw;
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer stk = new StringTokenizer(br.readLine());
N = Integer.parseInt(stk.nextToken());
M = Integer.parseInt(stk.nextToken());
arr = new int[M];
perm(0);
bw.flush();
bw.close();
}
private static void perm(int level) throws IOException{
// TODO Auto-generated method stub
if(level == M) {
StringBuffer stb = new StringBuffer();
for(int i = 0; i < M ; i++) {
stb.append(arr[i] + " ");
}
stb.setLength(stb.length()-1);
bw.write(stb.toString()+"\n");
return ;
}
for(int i = 1; i <= N ; i++) {
arr[level] = i;
perm(level+1);
}
}
}
입출력 문제로 인해 시간 초과가 날 수 있음
Br, Bw를 활용하는 습관을 들이는 것도 좋음