“NFP 是未来!”这是 Noa 的朋友们在谈论金融话题时都会期待他说的话。
NFP 是加密货币的一种。NFP 在 $s$ 天内的价值可以用一个 $r$ 行 $s$ 列的矩阵来表示,矩阵仅由字符 . 和 # 组成。第 $i$ 列中的字符 # 代表 NFP 在第 $i$ 天的价值,该价值为从底部向上数的行号。
第二个样例中 NFP 在 7 天内的价值为:3, 2, 2, 3, 4, 4, 1。 该 NFP 的不安全度(insecurity)为 3。
NFP 的不安全度定义为它在 $s$ 天内达到的最大值与最小值之差。
Noa 想要确定 $n$ 个 NFP 的不安全度,这些 NFP 的价值由 $r$ 行 $s$ 列的矩阵表示。
请帮助他确定每个 NFP 的不安全度。
输入格式
第一行包含整数 $n, r$ 和 $s$ ($1 \le n \le 20, 2 \le r, s \le 50$),分别表示 NFP 的数量,以及矩阵的行数和列数。
接下来有 $n$ 个矩阵,一个接一个地排列,每个矩阵都有 $r$ 行 $s$ 列,代表 NFP 的价值。每一列仅包含字符 .,且恰好包含一个字符 #。
输出格式
输出 $n$ 行。在 $n$ 行中的第 $i$ 行输出第 $i$ 个 NFP 的不安全度。
子任务
| 子任务 | 分值 | 数据范围 |
|---|---|---|
| 1 | 5 | $r = s = 2$ |
| 2 | 15 | $n = 1$ |
| 3 | 30 | 无附加限制 |
样例
输入格式 1
4 2 2 ## .. .. ## #. .# .# #.
输出格式 1
0 0 1 1
说明
注意:为了清晰起见,样例中矩阵之间有空行。在测试用例中,矩阵之间将不会有空行。
第一个样例的说明: 第一个和第二个 NFP 的价值在这些天内没有变化,因此它们的不安全度等于 0。第三个 NFP 的价值在第二天减少了 1,因此不安全度等于 1。第四个 NFP 的价值在第二天增加了 1,因此不安全度等于 1。
输入格式 2
1 5 8 .....#.# ...#..#. ..#.#... .#...... #.......
输出格式 2
4
说明
第二个样例的说明: NFP 达到的最大值为 5(在第 6 天和第 8 天),最小值为 1(在第 1 天)。因此,不安全度等于 $5 - 1 = 4$。
输入格式 3
2 3 3 ... ##. ..# .#. #.. ..#
输出格式 3
1 2