#include<iostream>
#include<vector>
#include<map>
#include<string>
using namespace std;
vector<vector<int>> res;
bool b[100] = { 0 };
class solution
{
public:
void test(int n, int k)
{
vector<int> v;
dfs(v, n, 1, k);
}
private:
void dfs(vector<int> &v, int n, int index,int k)
{
if (v.size() == k)
{
res.push_back(v);
return;
}
for (int i = 1; i <= n; i++)
{
if (!b[i])
{
v.push_back(i);
b[i] = 1;
dfs(v, n, index + 1,k);
b[i] = 0;
v.pop_back();
}
}
}
};
int main()
{
int n = 5,k=3;
class solution a;
a.test(n,k);
for (int i = 0; i < res.size(); i++)
{
for (int j = 0; j < res[i].size(); j++)
cout << res[i][j] << " ";
cout << endl;
}
system("pause");
return 0;
}