Vojtěch Jarník(1897–1970)被公认为是最有影响力的捷克数学家之一。他在数学分析和数论领域做出了巨大贡献,但他最著名的或许是用于寻找最小生成树的算法。该算法是为了响应另一位伟大的捷克数学家 Otakar Borůvka 发表的 Borůvka 算法而提出的。
鲜为人知的是,他们对鸟类学(ornithology)有着共同的兴趣,特别是在高维空间中。高维乌鸦以其倾向于在某一维度上排列成一条直线而闻名。此外,它们喜欢保持彼此之间的距离。
现在,给定几只乌鸦的位置,Vojtěch 和 Otakar 很好奇,乌鸦们最少需要移动多少步,才能排成一条直线,且所有乌鸦两两之间的原始曼哈顿距离都得以保持。在单步移动中,一只乌鸦可以沿单个坐标轴移动 $1$ 的距离。
形式上,一只乌鸦由一个含有 $D$ 个整数坐标的向量表示。在单步移动中,选择一只乌鸦,并将其其中一个坐标增加或减少 $1$。任意数量的乌鸦可以共享相同的空间。
我们要求出使乌鸦达到满足以下条件的配置所需的最小步数:
- 对于所有乌鸦,它们的坐标向量在除一个坐标外,其余所有坐标均相等。
- 对于每对乌鸦,它们之间的曼哈顿距离与过程开始前相同。乌鸦 $a = (a_1, \dots, a_D)$ 和 $b = (b_1, \dots, b_D)$ 之间的曼哈顿距离为 $\sum_{i=1}^D |a_i - b_i|$。
输入格式
第一行包含两个整数 $N$ 和 $D$($1 \le N \cdot D \le 10^5$),分别表示乌鸦的数量和维度。
接下来的 $N$ 行,每行包含 $D$ 个整数,每个整数在 $-10^9$ 到 $10^9$ 之间(含边界),表示一只乌鸦的坐标。
输出格式
输出一个整数——乌鸦达到满足所需属性的配置所需的最小步数。如果不可能,则输出 $-1$。
样例
输入样例 1
5 2 0 0 1 1 3 3 4 4 2 2
输出样例 1
12
输入样例 2
3 3 10 5 6 20 3 4 30 1 2
输出样例 2
16