排解忧伤
题号:NC214446
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

       猪猪参加小米赞助的icpc比赛之后惨遭打铁,为了排解忧伤,他开始观察嘉宾席。

       嘉宾席是间隔为1,一字排开的n个座椅,从左至右标号为1n。有m个嘉宾,每个嘉宾有一个心仪座位Ai,注意,不同嘉宾的心仪座位可能相同。嘉宾们会统一从一排座位的最左侧依次入场。一个嘉宾首先会走到他心仪的位子,如果此时他发现没有人坐,他就会立刻占据这个位子。如果已经有人坐了,该嘉宾会继续向右走,直到遇到一个空位子,立刻坐下。每个嘉宾的怒气值是他额外行走的距离,也就是最终的座位到心仪座位的距离。如果走到最后都没有找到位置,嘉宾会怒气爆棚。

       显然,座位存在一个先到先得的关系,不是每个人都能坐到心仪的座位。现在,猪猪想思考什么样的入场顺序可以使嘉宾们怒气值之和最小,请你帮帮他。

       输出最小怒气和。如果无论怎样安排入场顺序,都不能使所有嘉宾找到位子,输出-1

输入描述:

第一行两个正整数n,m

第二行m个用空格隔开的正整数,从左往右第i个正整数表示Ai
0<m<=n<=100000,0<Ai<=n 

输出描述:

一行一个正整数表示最小怒气和
示例1

输入

复制
5 4
3 2 4 3

输出

复制
2