#qkw0002. 懒

懒

题目描述

qkw 太懒了,整天窝在机房里发呆,但是 qtree 先生需要他出一道签到题。他很生气,直接出了一道非常短的题目来糊弄 qtree 先生(甚至这题还是 rxr 搬过来的):

你需要构造一个 NN 个点的无向图,使得:

  • 这个图是连通的简单图;
  • 你可以任意指定一个数 xx;
  • 你需要保证所有点的相邻点的编号之和都等于 xx。

点的编号为 1,2,…,N1, 2, \dots, N。相邻点指的是在图中与该点有边直接相连的点。

另外,qkw 想去睡觉了,所以没有造大样例。毕竟他觉得你们作为机房的高手应该不需要大样例用来打表。

输入格式

从文件 lazy.in 中读入数据。

输入的第一行包含一个正整数 NN,表示图的点数。

输出格式

输出到文件 lazy.out 中。

输出的第一行包含一个非负整数 MM,表示你构造的图的边数。 接下来 MM 行,每行包含两个正整数 u,vu, v(1≤u<v≤N1 \le u < v \le N),表示一条连接点 uu 和点 vv 的无向边。

保证你构造的图是连通的简单图,且存在一个整数 xx,使得所有点的相邻点的编号之和都等于 xx。若有多组解,输出任意一组即可。

样例 1

输入

3

输出

2
1 3
2 3

样例 1 解释

对于 N=3N=3,我们构造了一个包含 22 条边的图,边为 (1,3)(1, 3) 和 (2,3)(2, 3)。

  • 点 11 的相邻点为 33,编号之和为 33。
  • 点 22 的相邻点为 33,编号之和为 33。
  • 点 33 的相邻点为 1,21, 2,编号之和为 1+2=31 + 2 = 3。

此时所有点的相邻点编号之和均为 x=3x=3,且图是连通的简单图,满足题目要求。

数据范围与提示

对于所有测试数据,保证:1≤N≤10001 \le N \le 1000。

对于 20%20\% 的数据,N≤10N \le 10。 对于 100%100\% 的数据,N≤1000N \le 1000。