#993. 神父过河

神父过河

题目描述

nn 个神父和 nn 个恶魔一同来到了河岸,他们现在要过河。

他们可以通过一个容量为 mm 的船过去。

在渡河过程中,在河岸和船上,神父的数量都不能小于恶魔的数量(或者神父数量为 0),否则会被吃掉。

船不会自己划,因此最少需要一个神父或者一个恶魔去划船。

请你设计一个渡河流程,使得 nn 个神父和 nn 个恶魔都能过河。

输入格式

第一行两个整数 nnmm,含义如题目描述。

输出格式

第一行输出最少的步数 tt,如果不行,输出 1-1

接下来 tt 行,每行两个整数 x,yx,y 分别表示此次参与划船的神父数量和恶魔数量。

如果有多种方案,河流湍急,优先考虑在前面操作中乘船总人数多的,如果还一样,输出神父较多的。

输入输出样例

3 2
11
1 1
1 0
0 2
0 1
2 0
1 1
2 0
0 1
0 2
1 0
1 1
2 2
5 
1 1
1 0
2 0
1 0
1 1

说明/提示

样例解释

初始时,左岸有 33 个神父和 33 个恶魔,船也在左岸;右岸没有人。

船每次到达对岸后,下一次操作的方向会自动反转。因此,第 1,3,5,1,3,5,\ldots 次操作表示从左岸前往右岸,第 2,4,6,2,4,6,\ldots 次操作表示从右岸返回左岸。

样例中的渡河过程如下:

步数 航行方向 乘船人员 操作后左岸人数 操作后右岸人数
初始 33 个神父,33 个恶魔 00 个神父,00 个恶魔
11 左岸 \to 右岸 11 个神父,11 个恶魔 2,22,2 1,11,1
22 右岸 \to 左岸 11 个神父 3,23,2 0,10,1
33 左岸 \to 右岸 22 个恶魔 3,03,0 0,30,3
44 右岸 \to 左岸 11 个恶魔 3,13,1 0,20,2
55 左岸 \to 右岸 22 个神父 1,11,1 2,22,2
66 右岸 \to 左岸 11 个神父,11 个恶魔 2,22,2 1,11,1
77 左岸 \to 右岸 22 个神父 0,20,2 3,13,1
88 右岸 \to 左岸 11 个恶魔 0,30,3 3,03,0
99 左岸 \to 右岸 22 个恶魔 0,10,1 3,23,2
1010 右岸 \to 左岸 11 个神父 1,11,1 2,22,2
1111 左岸 \to 右岸 11 个神父,11 个恶魔 0,00,0 3,33,3

整个过程中,左岸、右岸和船上均满足:神父数量不少于恶魔数量,或者神父数量为 00

最终,所有神父和恶魔都到达了右岸,共进行了 1111 次航行。

数据范围

2n100 , mn2 \le n \le 100\ ,\ m \le n