时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld
题目描述

小红有一个

大小的格子棋盘,我们使用
)
表示棋盘中从上往下数第

行和从左往右数第

列的单元格。棋盘上有

个棋子,第

个棋子的坐标是
)
。

对于一对棋子

和

,如果满足

或者

,则两个棋子之间可以连线。

小红有点无聊,于是她把能连的线都连上了。现在,她想知道,最长的那条线,长度是多少。

特别地,如果连线数量为

,则输出

。
输入描述:
第一行输入两个整数
和
代表棋盘大小、棋子数量。
随后
行,每行输入两个整数
代表第
个棋子的坐标。保证不会出现重复的坐标。
输出描述:
输出一个整数,代表最长连线的长度。
示例1
说明

如下图所示,
)
和
)
的连线是最长的(使用绿色标注),长度为

。
示例2
输入
复制
8 8
1 6
2 2
3 7
4 1
5 4
6 8
7 5
8 3
说明

这是一个经典的

皇后棋盘,任何行和列都只有一颗棋子。
无法连线,答案为
。