#include <iostream>
using namespace std;
int N, M;
int arr[9];
bool visit[9];
void dfs(int depth) {
if (depth == M) {
for (int i = 0; i < M; i++) {
cout << arr[i] << " ";
}
cout << "\n";
}
else {
for (int i = 1; i <= N; i++) {
if (!visit[i]) {
visit[i] = true;
arr[depth] = i;
dfs(depth + 1);
visit[i] = false;
}
}
}
}
int main() {
cin >> N >> M;
dfs(0);
}
백트래킹 방식이 생소해서 어려웠다