#31159. C. yet LIS

C. yet LIS

C. yet LIS

给定长度为 nn 的序列构造规则:

  • 每个位置 iikk 个候选值,记为 ai,1ai,2ai,ka_{ i,1}\le a_{i,2}\le\cdots\le a_{i,k}
  • 需从每个位置的候选值中选取恰好一个数构成序列 aa

求所有可能序列的最长严格上升子序列(LIS)的最大长度。

输入格式

第一行两个数 k,nk, n,意义如题述。

接下来 nn 行,每行 kk 个数,即 ai,1,ai,2,,ai,ka_{ i,1}, a_{i,2},\cdots, a_{i,k}

输出格式

仅一行一个整数,即所有可能的序列中的最长上升子序列的的最大长度。

样例

输入样例 1

2 2
1 3
1 2

输出样例 1

2

样例 1 说明

序列可能为 {1,2}\{1, 2\},这时最长上升子序列的长度为 22,是最长的长度。

样例 2

见选手目录下的 lis/lis2.in\textit{\textbf{lis/lis2.in}}lis/lis2.ans\textit{\textbf{lis/lis2.ans}}

该样例与测试数据 464\sim 6 满足同样的约束条件。

大样例

数据规模与约定

  • 数据点 11k=1k=1n103n\le 10^3
  • 数据点 232\sim3n,k100n,k\le 100
  • 数据点 464\sim6k103k\le 10^3
  • 数据点 7107\sim10:无特殊限制。

对于 100%100\% 的数据,有 1k5×1031\le k\le 5 \times 10^31n1031 \le n \le 10^3,每个取值都是非负数,不超过 10310^3