#include <iostream>
using namespace std;
void dfs(int num, int * a, bool * isVisited, string temp) {
if (temp.size() == num) {
cout << temp << endl;
}
else {
for (int i = 1; i <= num; i++) {
if (!isVisited[i]) {
isVisited[i] = true;
temp += i + '0';
dfs(num, a, isVisited, temp);
temp = temp.substr(0, temp.size() - 1);
isVisited[i] = false;
}
}
}
}
void find(int num) {
string temp = "";
int * a = new int[num + 1];
bool * isVisited = new bool[num + 1];
for (int i = 1; i <= num; i++) {
a[i] = i;
isVisited[i] = false;
}
dfs(num, a, isVisited, temp);
delete [] a;
delete [] isVisited;
}