#582. 龙和虫

龙和虫

Background

Special for beginners, ^_^

Description

给出一张 n∗m 的地图,在地图上有一只虫,样子却很像龙,而且嘴能快速的直射喷出一种毒液,瞬间杀死敌人。

​ 现在假设虫的初始位置在 x1,y1,另外在 x2,y2 处有一个敌人。假设虫移动一步需要单位 1 的时间,而杀死敌人不需要时间,并且虫的毒液射程无穷大,但毒液不能穿透障碍物,虫可以向四个方向移动,向八个方向攻击,求虫最少需要多少时间才能消灭敌人。

Format

Input

第1行为2个数N和M,表示矩阵的规模。

接下来是N*M的矩阵,O表示空地,X表示阻碍物。

下面是若干行数据,每行为一对数据,分别是敌人的位置和虫的位置。显然,敌人和虫都不可能在阻碍物上。

以“0 0 0 0”为输入结束标志。

Output

输出第1行为虫能消灭掉敌人的最短时间。

显然,若能直接打到敌人,则时间为0;若无法消灭,则第2行再输出“Impossible!”。

Samples

3 4
OXXO
XXOO
XOOO
3 2 2 4
3 3 1 1
0 0 0 0
1
Impossible!

Limitation

对于30%的数据满足:N*M<=5000。

对于50%的数据满足:N*M<=10000。

对于100%的数据满足:N*M<=20000。