#P16561. [Bapc2022]kiosk construction

[Bapc2022]kiosk construction

题目背景

你准备经营一座露营地,并把场地划分成 h×wh\times w 个方格地块,每个地块被赋予一个互不相同的编号。现在需要选择一个地块修建接待服务亭。

游客不会沿最短路前往自己的地块,而是会根据地块编号执行一种固定的贪心移动规则。你希望选择一个服务亭位置,使所有游客最终都能到达目标,并让最远游客的步行距离尽可能小。

题目描述

给定一个 h×wh\times w 的网格。每个格子有一个编号 ai,ja_{i,j},所有编号 1,2,,hw1,2,\ldots,h\cdot w 各出现恰好一次。

游客从服务亭所在格出发,目标是编号为 dd 的地块。每一步执行以下操作:

  1. 查看当前格上下左右四个方向中存在的相邻格;
  2. 选择编号与目标编号 dd 的差的绝对值最小的相邻格;
  3. 若有两个相邻格并列,则在这两个格中选择编号与当前格编号的差的绝对值更小者;
  4. 移动到所选相邻格,并重复上述过程,直到到达目标地块。

这个过程在某些情况下可能永远无法到达目标,例如进入循环。

你需要选择一个服务亭位置,使从该位置出发前往任意目标地块时,上述过程都能终止并到达目标。在所有合法位置中,最小化到任意地块的最大步数。

若不存在合法位置,输出 impossible

下图展示了样例 3。把服务亭放在编号 44 的地块时,所有地块都能在至多 33 步内到达;若放在编号 77 的地块,则无法到达编号 99 的地块。

样例 3 示意图

输入格式

第一行包含两个整数 h,wh,w,表示网格的行数和列数。

接下来 hh 行,每行包含 ww 个整数。第 ii 行的第 jj 个整数为 ai,ja_{i,j}

保证 11hwh\cdot w 的每个整数恰好出现一次。

输出格式

若存在合法服务亭位置,输出两个整数:

  • 服务亭所在格的编号;
  • 从该位置到任意目标地块的最大步数。

若有多个最优解,可以输出任意一个。

若不存在合法位置,输出:

impossible

数据范围

2h,w40,2\le h,w\le 40, 1ai,jhw.1\le a_{i,j}\le h\cdot w.

样例 1

输入

2 3
1 2 3
6 5 4

输出

2 2

样例 2

输入

3 3
1 4 8
7 5 2
3 9 6

输出

impossible

样例 3

输入

3 3
9 3 1
4 7 2
8 6 5

输出

4 3