Problem F: 巡逻任务

Problem F: 巡逻任务

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 128 MiB

Description

在一条战线中,有  个需要巡逻的点,为了完成巡逻任务,指挥部计划指派  个哨兵,每个哨兵可以自由选择起始位置 ,不消耗体力。但哨兵每移动一个单位距离(从  到  或 ),则消耗  点体力。

指挥部的目标是将  个哨兵合理部署到战线上,使得:

  • 所有需要巡逻的点都由至少一名哨兵巡逻过。
  • 哨兵总体力消耗的最小。

请你设计一个合理的方案,计算最小的体力消耗,并输出结果。

Input

第一行,两个整数,分别是 k 和 n;
第二行,n 个整数,战线中必须巡逻的坐标 ai

Output

输出消耗的最少体力

Sample Input Copy

3 4
-10 -1 1 14

Sample Output Copy

2

HINT

样例解释 1

  • 哨兵 1 初始点位即为 ,接下来无需移动,消耗为 
  • 哨兵 2 初始点位为 ,接下来需向右移动  个位置到点位 ,消耗为 
  • 哨兵 3 初始点位即为 ,接下来无需移动,消耗为 

综上,总消耗为 


样例解释 2

  • 哨兵 1 初始点位即为 ,接下来无需移动,消耗为 0。
  • 哨兵 2 初始点位为 ,接下来无需移动,消耗为 0。
  • 哨兵 3 初始点位即为 ,接下来需向右移动  个位置至点位 ,消耗为 ;接下来需向右移动  个位置至点位 ,消耗为 ;接下来需向右移动  个位置至点位 ,消耗为 ;接下来需向右移动  个位置至点位 ,消耗为 ;共计消耗 
  • 哨兵 4 初始点位即为 ,接下来需向右移动  个位置,消耗为 

综上,总消耗为 


样例解释 3

根据题意,哨兵巡逻可以做到不消耗体力。

数据范围

对于所有测试数据有: