201523: [AtCoder]ARC152 D - Halftree

Memory Limit:1024 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Score : $700$ points

Problem Statement

We have an undirected graph with $N$ vertices numbered $0$ through $N-1$ and no edges at first. You may add edges to this graph as you like. When you are done with adding edges, the following operation will be performed once using a given integer $K$.

  • For each edge you have added, let $u$ and $v$ be its endpoints, and an edge will be added between two vertices $(u+K)$ $\mathrm{mod}$ $N$ and $(v+K)$ $\mathrm{mod}$ $N$. This edge will be added even if there is already an edge between these vertices, resulting in multi-edges.

For the given $N$ and $K$, find a set of edges that you should add so that the graph will be a tree after the operation. If there is no such set of edges, indicate that fact.

Constraints

  • $2\leq N\leq 2\times 10^5$
  • $1\leq K\leq N-1$
  • All values in the input are integers.

Input

The input is given from Standard Input in the following format:

$N$ $K$

Output

If there is a set of edges that satisfies the requirement, let $M$ be the number of edges, and $a_i$ and $b_i$ be the two vertices connected by the $i$-th edge, and print a solution in the following format. Here, $0\leq M\leq N$ must hold, and all values must be integers. The edges may be printed in any order, as well as the endpoints of an edge.

$M$
$a_1$ $b_1$
$a_2$ $b_2$
$\vdots$
$a_M$ $b_M$

If multiple solutions exist, any of them will be accepted.

If no set of edges satisfies the requirement, print -1.


Sample Input 1

5 2

Sample Output 1

2
2 3
2 4

The operation will add the edges $4$-$0$ and $4$-$1$. Then, the graph will be a tree, so this is a legitimate output.


Sample Input 2

2 1

Sample Output 2

-1

There is no way to have a tree after the operation.


Sample Input 3

7 1

Sample Output 3

3
0 1
2 3
4 5

Input

题意翻译

有 $n$ 个点 $0,1,2 ... n-1$ 和一个参数 $k$,你需要连接若干条无向边, 使得将这些点连成一棵**树**,连边规则如下: - 选择 $u,v$ 两点,同时连接点 $u$ 和 $v$,点 $(u+k)\mod n $ 和 $(v+k)\mod n$ 注意可能存在重边,这时重边算作多条边。 求一个合法的构造方案或输出无解。 数据范围:$1 \le n \le 2 \times 10^5,1 \le k \le n-1$ 且 $n,k \in Z$

加入题单

算法标签: