[코드]
#include <iostream>
#include <cstring>
using namespace std;
char path[10];
int n;
int m;
void run(int lev) {
if (lev == m) {
for (int i = 0; i < m; i++) {
cout << path[i] << " ";
}
cout << endl;
return;
}
for (int i = 1; i <= 4; i++) {
if (lev > 0 && path[lev - 1] == i + '0')continue;
path[lev] = i + '0';
run(lev + 1);
path[lev] = 0;
}
}
int main() {
cin >> n >> m;
run(0);
return 0;
}
[출력]
1 2
1 3
1 4
2 1
2 3
2 4
3 1
3 2
3 4
4 1
4 2
4 3