```java
import java.util.Scanner;
public class C2553 {
static int col[] = new int[20];
static int n;
static int count;
static int out[] = new int[11];
public static void main(String args[]) {
Scanner scan = new Scanner(System.in);
while(scan.hasNext()) {
for(int i=1;i<=10;i++){
n = i;
count = 0;
dfs(1);
out[i] = count;
}
n = scan.nextInt();
System.out.println(out[n]);
count = 0;
}
}
public static void dfs(int a) {
if(a >= n+1) {
count++;
}else {
for(int i=1;i<=n;i++) {
col[a] = i;
if(istrue(a)) {
dfs(a+1);
}
}
}
}
public static boolean istrue(int a) {
for(int i=1;i<a;i++) {
if(abs(a-i)==abs(col[i]-col[a]) || col[i]==col[a]) {
return false;
}
}
return true;
}
private static Object abs(int i) {
if (i>0) return i;
return -i;
}
}
看注释就好啦