#P16563. [Bapc2020]Aquarium Arrangement

[Bapc2020]Aquarium Arrangement

题目描述

你是“比荷卢食人鱼与鲶鱼水族馆”的员工。水族馆希望扩充目前并不丰富的水生动物展览,但资金不足。为了帮助水族馆进行宣传,你需要给两个展区拍照。

鲶鱼十分配合,因此第一张照片拍得很顺利。对于食人鱼展区,你已经设计好了一种适合拍照的排列方式。然而,想让食人鱼移动,唯一的方法就是把手指冒险伸入水中,用它们感兴趣的方式进行引诱。你的目标是在不失去手指的前提下,尽快把所有食人鱼移动到目标位置。

食人鱼展区从左到右划分为位置 1,2,,n1,2,\ldots,n。展区内共有 kk 条食人鱼,每个位置至多有一条食人鱼。

你可以把手指伸入任意一个当前没有食人鱼的位置。此时:

  • 手指左侧距离最近的食人鱼会向手指游来;
  • 手指右侧距离最近的食人鱼也会向手指游来;
  • 这两条食人鱼每秒向手指方向移动一个位置;
  • 其余食人鱼保持不动。

如果某条食人鱼到达了手指所在的位置,它就会咬到你的手指。因此,你必须在这种情况发生之前把手指移开。把手指从水中抽出并立即放入另一个位置不消耗时间。

例如,假设食人鱼位于位置 2,7,92,7,9。如果把手指放在位置 44,一秒后它们将位于位置 3,6,93,6,9。此时你必须立即把手指移开,否则位置 33 的食人鱼再过一秒就会咬到你。接下来,如果把手指放在位置 11,只有位置 33 的食人鱼会移动,并在一秒后到达位置 22

请计算,把所有食人鱼移动到目标位置所需的最少秒数。

输入格式

输入包含三行:

第一行包含两个整数 nnkk

  • 1n10001\le n\le 1000,表示位置数量;
  • 1kn1\le k\le n,表示食人鱼数量。

第二行包含 kk 个整数:

1p1<p2<<pkn,1\le p_1<p_2<\cdots<p_k\le n,

表示食人鱼当前所在的位置。

第三行包含 kk 个整数:

1d1<d2<<dkn,1\le d_1<d_2<\cdots<d_k\le n,

表示食人鱼的目标位置。

输出格式

如果能够完成目标排列,输出所需的最少秒数。

如果无法完成,输出:

impossible

样例 1

输入

9 3
3 7 9
3 5 9

输出

4

样例 2

输入

8 3
1 5 8
2 4 7

输出

impossible

样例 3

输入

20 6
1 4 7 10 13 20
2 5 8 11 14 17

输出

17