#B10006. 收费站

收费站

问题描述

有 N+1N + 1 个格子从左到右排成一行,编号依次为 0,1,…,N0, 1, \ldots, N。

你初始时位于编号为 XX 的格子上,可以自由地在相邻的格子之间移动。当你到达编号为 00 或 NN 的格子时即视为到达终点。

在给定的 MM 个格子 A1,A2,…,AMA_1, A_2, \ldots, A_M 上设有收费站,每次移动到这些格子上时需要支付 11 的费用。保证编号为 0,X,N0, X, N 的格子上没有收费站。

请你求出从起点到达任意一个终点所需支付的最小费用。

输入格式

第一行输入三个整数 N,M,XN, M, X。

第二行输入 MM 个整数 A1,A2,…,AMA_1, A_2, \ldots, A_M。

输出格式

输出一个整数,表示到达终点所需支付的最小费用。

样例输入 1

5 3 3
1 2 4

样例输出 1

1

样例输入 2

7 3 2
4 5 6

样例输出 2

0

样例输入 3

10 7 5
1 2 3 4 6 8 9

样例输出 3

3

说明

样例 1 解释:

  • 向左移动到终点 00:需要经过格子 2,12, 1,费用为 1+1=21 + 1 = 2;
  • 向右移动到终点 55:需要经过格子 44,费用为 11。

最优方案为向右移动,最小费用为 11。

评测数据规模

对于所有评测数据:

  • 1≤N≤1001 \leq N \leq 100
  • 1≤M≤1001 \leq M \leq 100
  • 1≤X≤N−11 \leq X \leq N - 1
  • 1≤A1<A2<⋯<AM≤N−11 \leq A_1 < A_2 < \cdots < A_M \leq N - 1
  • Ai≠X(1≤i≤M)A_i \neq X \quad (1 \leq i \leq M)
  • 所有输入均为整数