#603. N 皇后

N 皇后

附加文件

题目描述

要在一个 N×N 的棋盘上放置 N 个皇后,使得任意两个皇后不在同一行,也不在同一列,且任意两个皇后的连线的斜率不能为 1 或 -1。

如下图是 N=6 时的一种放置方案:

该方案可以用一个有序序列 CC: 2 4 6 1 3 52\ 4\ 6\ 1\ 3\ 5 来表示,其中第 ii 个数字 CiC_i 表示在第 ii 行的第 CiC_i 列放了一个皇后。

现在让你找到所有的放置方案,并按字典序输出前 KK 个方案序列。

最后再输出一行一个整数,表示所有的放置方案数。

如果无解,则只输出一行 -1

输入格式

一行,包含两个正整数 N, K。数据保证如果有解,则至少存在 K 种方案。

输出格式

如果有解,则输出 K+1 行,前 K 行为字典序前 K 小的 K 种放置方案,第 K+1 行输出一个整数,表示所有的放置方案数。

如果无解,则输出 -1

样例1输入

6 2

样例1输出

2 4 6 1 3 5
3 6 2 5 1 4
4

样例2输入

3 2

样例2输出

-1

数据范围

50% 的数据:2N102 ≤ N ≤ 10

100% 的数据:2N15,1K102 ≤ N ≤ 15, 1 ≤ K ≤ 10