3761 - 星星点灯
Description

A 市迎来了当地的传统节日——一年一度的观星节。

主办方请来了著名绘画大师大 D 画下了当晚天上的 n 颗星星,参与者可以花费 m 点星光能量为任意一颗星星点一盏灯。

除此之外,主办方还制作了一个 n \times n 的表格,表格中第 i 行第 j 列的数字 F_{i,j} 表示如果目前第 i 颗星星是亮的,那么可以花费 F_{i,j} 点星光能量为第 j 颗星星点亮一盏灯。特别地,对于任何 a, b,F_{a,b} 总是等于 F_{b,a}。

大 D 看着这些灯,心里盘算着最少花费多少星光能量能够为所有的星星点一盏灯。

Input

第一行两个整数 m, n,含义如题所示。

接下来 n 行,每行 n 个整数,第 i 行第 j 个整数表示 F_{i,j}。

Output

一行一个整数,输出点亮所有灯所需最少的星光能量。

Examples

Input

5 3
3 2 3
2 4 1
3 1 4

Output

8

Input

10 5
6 2 3 5 2
2 4 1 5 7
3 1 3 4 3
5 5 4 3 6
2 7 3 6 4

Output

19
Hint

样例 1 解释

先支付 5 点星光能量点亮第二颗星星的灯,然后通过 F_{2,1} 和 F_{2,3} 点亮第一颗和第三颗星星的灯,总共花费了 m + F_{2,1} + F_{2,3} = 5 + 2 + 1 = 8 点星光能量。

数据范围

  • 1 \sim 2 号测试点:n \le 4;
  • 3 \sim 6 号测试点:n \le 100;
  • 7 \sim 10 号测试点:n \le 1000。

对于 100\% 的数据,1 \le m, F_{a,b} \le 1000。

提示

把「花 m 点能量直接点亮某颗星」看成从一个虚拟的超级源点向这颗星连一条权为 m 的边,把 F_{i,j} 看成星星 i 与 j 之间的一条边,那么「点亮所有星星且总花费最小」就是这张图上的最小生成树。

用 Prim 算法实现是 O(n^2),用 Kruskal 算法是 O(n^2 \log n),两种都足以通过 n \le 1000 的数据。

Source
2024梦熊CSP-J20连测 普及模拟赛16
Tags
题目参数
Time Limit 1 second
Memory Limit 256 MB
提交次数 1
通过次数 1