#include<stdio.h>
#include<stdlib.h>
typedef struct
{
int *arr;
int length;
}SqList;
void Perm(SqList &L,int m)
{
int i,j,temp;
if(m==L.length)
{
for(i=0;i<L.length;i++)
printf("%d ",L.arr[i]);
printf("\n");
}
else
for(j=m;j<L.length;j++)
{
temp=L.arr[j];
L.arr[j]=L.arr[m];
L.arr[m]=temp;
Perm(L,m+1);
temp=L.arr[j];
L.arr[j]=L.arr[m];
L.arr[m]=temp;
}
}
void GeneratePerm(SqList &L)
{
int j;
for(j=0;j<L.length;j++)
L.arr[j]=j+1;
Perm(L,0);
}
int main()
{
SqList L;
int N;
scanf("%d",&N);
L.arr=(int *)malloc(N*sizeof(int));
L.length=N;
GeneratePerm(L);
return 0;
}
#include<stdio.h>
#include<stdlib.h>
typedef struct
{
int *arr;
int length;
}SqList;
void Perm(SqList &L,int m)
{
int i,j,temp;
if(m==L.length)
{
for(i=0;i<L.length;i++)
printf("%d ",L.arr[i]);
printf("\n");
}
else
for(j=m;j<L.length;j++)
{
temp=L.arr[j];
L.arr[j]=L.arr[m];
L.arr[m]=temp;
Perm(L,m+1);
temp=L.arr[j];
L.arr[j]=L.arr[m];
L.arr[m]=temp;
}
}
void GeneratePerm(SqList &L)
{
int j;
for(j=0;j<L.length;j++)
L.arr[j]=j+1;
Perm(L,0);
}
int main()
{
SqList L;
int N;
scanf("%d",&N);
L.arr=(int *)malloc(N*sizeof(int));
L.length=N;
GeneratePerm(L);
return 0;
}