1075: 战犯评级(Hard)

Memory Limit:512 MB Time Limit:1.000 S
Judge Style:Text Compare Creator:
Submit:90 Solved:36

Description

本题与战犯评级(Easy) 的唯一区别是n的范围:在Easy版中 ,n=10。


OMoonStars最近迷上了科幻小说《银河帝国》,想在银河系大显身手的他启动了《Stellaris》。

在遭到游戏中其他国家的无情羞辱后,开战!开战!一名p社战犯就这么诞生了…


银河系是2n x 2n大小的矩阵,每个坐标有一个星系。OMoonStars占领了m个星系,他想知道自己的势力如何,于是发明了战犯评级算法:

定义 i 级星区为2i-1 x 2i-1大小的矩阵,其左上角星系的横纵坐标均模2i-1余1(如下图);特殊地,1级星区是一个星系。 当一个 i 级星区内至少2个 i-1 级星区已占领时,则认为该 i 级星区已占领。


战犯等级等于占领最大星区的等级,你能求出OMoonStars是几级战犯,以便在军事法庭上控诉他的战争罪行吗?

Input

每个测试文件仅有一组测试数据。

第一行输入两个整数n,m(0<=n<=60,1<=m<=105)表示银河系是2n x 2n大小的矩阵,占领了m个星系。

对于接下来m行,第i行输入两个整数xi和yi(1<=xi,yi<=2n),表示占领的第i个星系在银河系中的坐标。输入保证所有坐标两两不同。

Output

输出一行一个整数表示OMoonStars是几级战犯。

Sample Input Copy

3 10
1 1
1 2
2 2
2 3
2 4
4 4
5 8
6 7
7 6
8 5

Sample Output Copy

4

HINT

占领的星系以玫红色填充,占领的2级星区以蓝框表示,占领的3级星区以绿框表示,占领的4级星区以红框表示。


以(1,1)为左上角的2级星区已占领,因为其中(1,1),(1,2),(2,2)三个星系已占领。

以(3,3)为左上角的2级星区未占领,因为其中只有(4,4)一个星系已占领。