#include <iostream>
#include <fstream>
using namespace std;
int a[10], n, nrsol;
ifstream fin("permutari.in");
ofstream fout("permutari.out");
void afisare()
{
for(int i = 1; i <= n; i++)
fout << a[i] << ' ';
fout << '\n';
}
bool valid(int k)
{
for(int i = 1; i < k; i++)
if(a[k] == a[i])
return false;
return true;
}
void backtracking(int k)
{
if(k == n + 1)
{
afisare();
nrsol++;
}
else
{
for(int i = 1; i <= n; i++)
{
a[k] = i;
if(valid(k) == true)
{
backtracking(k + 1);
}
}
}
}
int main()
{
fin >> n;
backtracking(1);
cout << nrsol;
return 0;
}