P0833

三维导弹拦截

三维导弹拦截

A 国与 B 国之间的战争正如火如荼地进行。B 国凭借强大的经济实力开发了大量远程攻击导弹,企图直接摧毁 A 国的指挥部。为了阻止攻击,A 国需要使用拦截导弹摧毁这些导弹。

B 国的导弹形成了三维立体打击。忽略导弹的大小,可以将每枚导弹的位置抽象为三维空间中的一个点。为简化问题,只考虑某一瞬间所有导弹均静止的状态。

拦截导弹可以精确引爆对方的导弹,且自身不会因此损毁。然而,这些拦截导弹只能沿三维坐标严格单调上升的方向移动。也就是说,一枚拦截导弹所摧毁的导弹序列中,xx、yy、zz 三个坐标都必须分别严格递增。

将 B 国的 NN 枚导弹依次编号为 11 至 NN。例如,若 44 枚导弹的位置依次为 (0,0,0)(0,0,0)、(1,1,0)(1,1,0)、(1,1,1)(1,1,1)、(2,2,2)(2,2,2),则序列 {1,3,4}\{1,3,4\} 是合法的打击序列,而序列 {1,2,4}\{1,2,4\} 不合法,因为第 11 枚与第 22 枚导弹的 zz 坐标没有严格递增。

给定所有导弹的位置,请回答以下两个问题:

  1. 一枚拦截导弹最多能够摧毁多少枚 B 国导弹?
  2. 最少需要使用多少枚拦截导弹,才能摧毁 B 国的所有导弹?

输入格式

第一行包含一个整数 NN,表示 B 国导弹的数量。

接下来 NN 行,每行包含三个非负整数 XiX_i、YiY_i、ZiZ_i,表示第 ii 枚导弹的位置。

保证任意两枚导弹不会位于同一位置。

输出格式

第一行输出一个整数 PP,表示一枚拦截导弹最多能够摧毁的导弹数量。

第二行输出一个整数 QQ,表示摧毁所有 B 国导弹至少需要的拦截导弹数量。

样例输入

4
0 0 0
1 1 0
1 1 1
2 2 2

样例输出

3
2

数据范围

  • 所有坐标均为 [0,106][0,10^6] 范围内的整数;
  • 对于 30%30\% 的数据,N<31N<31;
  • 对于 50%50\% 的数据,N<101N<101;
  • 对于 100%100\% 的数据,N<1001N<1001。

来源与许可

本题题面与测试数据整理自 BZOJ。

样例 1

输入

4
0 0 0
1 1 0
1 1 1
2 2 2

输出

3
2