#include<stdlib.h>
#include<string.h>
int n;
int cnt;
int vis[100];
int num[100];
void dfs(int cur)
{
if(cur==n)
{
int i;
for(i=0; i<cur; i++)
printf("%d%c",num[i],i==cur-1?'\n':' ');
cnt++;
}
else
{
int i;
for(i=1; i<=n; i++)
{
if(vis[i]==0)
{
num[cur]=i;
vis[i]=1;
dfs(cur+1);
vis[i]=0;
}
}
}
}
int main()
{
while(~scanf("%d",&n))
{
cnt=0;
memset(vis,0,sizeof(vis));
dfs(0);
printf("%d\n",cnt);
}
}