#include #include using namespace std; template void dfs(vector& _path, int n) { if(_path.size() == n){ for(auto x : _path) cout << x << " "; cout << endl; return; } for(int i = 0; i < n; i++){ _path.push_back(i + 1); dfs(_path, n); _path.pop_back(); } } int main(){ int n; cin >> n; vector path; dfs(path, n); return 0; }