#include<stdio.h>
#include<stdlib.h>
#include<math.h>

int n,m;
int a[20];

int print()
{ int i;
m++;printf("m= %d\n",m);
for(i=1;i<=n;i++)
printf("a[%d] = %d\n",i,a[i]);
}

int check(int v,int k)
{
int i;
for(i=1;i<=k;i++) {
if(a[i]==v) return 0;
if(a[i]+i==v+k) return 0;
if(a[i]-i==v-k) return 0;
} return 1;
}

int TRY(int k)
{
int v;
for (v=1;v<=n;v++)
if(check(v,k)==1)
{
a[k]=v;
if(k==v) print();
else TRY(k+1);
}
}

int main()
{
printf("nhap vao so n = \n"); 
scanf("%d",&n);
m=0; TRY(1);
if(m==0) printf("k co nghiem");
printf("\nfinish...");
}