#133 · stock-charts-4f1a56

股票图表

Not startedHard
Time10.0 s
Memory1,024 MB
Submissions0
Acceptance0.0%
0%100%

Statement

你正在撰写报纸的年终经济总结,并决定展示若干图表来演示不同股票在过去一年中的表现。你已经决定要展示 n 只不同股票的价格,它们都在一年中的相同 k 个时间点。

一只股票价格的*简单图表*会在点 (0, price), (1, price), ... , (k-1, price) 之间画线,其中 price 是该股票在第 *i* 个时间点的价格。

为了节省空间,你发明了*叠加图表*的概念。叠加图表是一张或多张简单图表的组合,展示多只股票的价格(只需为每只股票画一条线)。为了避免图表中显示的股票之间产生混淆,叠加图表中的线不能交叉或接触。

给定 *n* 只股票在 *k* 个时间点中每个时间点的价格列表,确定展示所有股票价格所需的最少叠加图表数量。

Input

输入的第一行将包含一个整数 T,即测试用例的数量。接下来是 T 个测试用例,每个用例在不同行上,格式如下:

`` n k price0,0 price0,1 ... price0,k-1 price1,0 price1,1 ... price1,k-1 ... pricen-1,0 pricen-1,1 ... pricen-1,k-1 ``

其中 price 是整数,表示第 *i* 只股票在时间 *j* 的价格。

### 数据范围

- 1 ≤ T ≤ 100
- 2 ≤ k ≤ 25
- 0 ≤ price ≤ 1000000
- 1 ≤ n ≤ 16
- 1 ≤ n ≤ 100

Output

按测试用例顺序逐个输出答案。对于每个测试用例,输出一行,包含 *Y*,其中 *Y* 是展示所有股票价格所需的最少叠加图表数量。

Examples

Example 1

Input

3
3 4
1 2 3 4
2 3 4 6
6 5 4 3
3 3
5 5 5
4 4 6
4 5 4
5 2
1 1
2 2
5 4
4 4
4 1

Output

2
3
2

Constraints

  • Time limit: 10000 ms
  • Memory limit: 1048576 KB
  • Tag: dynamic-programming
  • Tag: graph

Loading language catalog...