D. 设计师(designer)

内存限制:256 MiB 时间限制:1000 ms 输入文件: designer.in 输出文件: designer.out
题目类型:传统 评测方式:文本比较

题目描述

身为设计师的小途正在对途市的建筑进行规划。

小途准备在途市中建造n个建筑物,初步设计中,小途已经选择了这些建筑物的位置,并告诉你这些建筑物在设计图(二维平面坐标系)中的坐标。为了城市的美观,小途设计了若干个logo,并且将这些logo分发给若干个不同的管辖区(相同的管辖区内建筑物的logo相同;不同管辖区内的建筑物的logo一定不相同)。当2个建筑物的x轴坐标相同或者y轴坐标相同时,这两个建筑物上会分发相同的logo(每个建筑物上只能印一个logo),这两个建筑物属于同一个管辖区。logo具有传递性,如果建筑物A,B的横(纵)坐标相同,则A,B的logo相同,如果建筑物B,C的横(纵)坐标相同,则B,C的logo也相同,此时A,C的logo也相同,即A,B,C处于同一个管辖区内。

为了城市的经济发展,小途打算最多设计k个经济发展联盟,每个经济发展联盟中至少有一个建筑物,且同一个联盟内的建筑物logo必须相同。现在请你求出在所有的划分经济联盟的方案中,最大经济发展联盟的大小(建筑物的个数)的最小值,无解时输出―1。

输入格式

第一行两个整数n,k,表示点的数量,见题目描述。

第2至n+1行,第 i+1 行两个整数 x_i,y_i ,表示第 i 个点的位置。

输出格式

一行一个整数,表示最大集合大小的最小值。

样例

样例输入1

4 1
1 2
2 1
1 1
2 2

样例输出1

4

样例输入2

5 3
1 2
2 1
1 1
2 2
3 3

样例输出2

2

数据范围与提示

对于100%的数据, 1≤k≤n≤10^5,-10^6≤x_i,y_i≤10^6 ,保证没有两个建筑物会盖在一个地方。

测试点编号 n<= 特殊性质
1 2 n=2
2 3 n=3
3 18
4 2000 0<=x_i,y_i<=100
5
6 10^5 保证所有建筑物都会得到不同的logo
7 保证所有建筑物都会得到相同的logo
8~10

样例1解释

整个城市只发一种logo, 将其发给1给发展联盟,其大小为4。

样例2解释

整个城市只发2种logo, 分别发了4和1个,发给了3个发展联盟,最大的联盟最小值为2