暑假游戏题
题号:NC308091
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

\hspace{15pt}放暑假了,xiaoyyds 开始和同学一起玩游戏!
\hspace{15pt}xiaoyyds 发现了一个叫做“你宁愿”的小游戏。
\hspace{15pt}游戏总共会进行 m 轮。加上 xiaoyyds,总共有 n 个玩家参加。在一轮中:
\hspace{23pt}\bullet\,系统会随机抽取两张不同的地图,每张地图都有对应的玩法。
\hspace{23pt}\bullet\,每个玩家都可以选择两个地图中的一个进行游玩。
\hspace{23pt}\bullet\,游玩后每个玩家会获得一些积分。令选择第一个地图的玩家数为 x,选择第二个地图的玩家数为 y。那么选择第一个地图的玩家会获得 y+1 的积分,选择第二个地图的玩家会获得 x+1 的积分。
\hspace{15pt}但是由于有一些地图相对困难,一些玩家可能完成不了这些地图。具体来说,第 i 个玩家在第 j 轮中的可完成情况为 c_{i,j}\in\{0,1,2\}。其中 0 表示其只能完成第一个地图,1 表示其只能完成第二个地图,2 表示其可以完成第一、第二个地图。
\hspace{15pt}到最后每个玩家都会拥有一些积分。由于 xiaoyyds 比较有集体荣誉感,所以他希望让所有玩家获得的积分总和最大。
\hspace{15pt}xiaoyyds 想知道,在所有玩家都听从 xiaoyyds 的指挥的情况下(xiaoyyds 在每一轮都可以帮每个玩家选择一个其可以完成的地图),所有玩家获得的积分总和的最大值是多少。

输入描述:

\hspace{15pt}第一行输入两个整数 n,m \left(1\le n\le 100;\,1\le m\le 10^4\right),表示玩家数量和游戏轮数。
\hspace{15pt}此后 n 行,第 i 行输入 m 个整数 c_{i,1},c_{i,2},\dots,c_{i,m} \left(0 \leq c_{i,j} \leq 2\right),表示第 i 个玩家在第 j 轮的可完成情况。

输出描述:

\hspace{15pt}在一行上输出一个整数,表示所有玩家获得的积分总和的最大值。
示例1

输入

复制
2 3
0 1 2
1 1 2

输出

复制
10

说明

\hspace{15pt}在这个样例中:
\hspace{23pt}\bullet\,在第一轮中,玩家 1 选择第一个地图,玩家 2 选择第二个地图,玩家 1 获得 2 积分,玩家 2 获得 2 积分。
\hspace{23pt}\bullet\,在第二轮中,玩家 1 选择第二个地图,玩家 2 选择第二个地图,玩家 1 获得 1 积分,玩家 2 获得 1 积分。
\hspace{23pt}\bullet\,在第三轮中,玩家 1 选择第一个地图,玩家 2 选择第二个地图,玩家 1 获得 2 积分,玩家 2 获得 2 积分。
\hspace{15pt}玩家 1 总共获得 5 积分,玩家 2 总共获得 5 积分。所有玩家获得的积分总和为 10。可以证明不存在更优的方案。
示例2

输入

复制
3 3
1 0 2
1 0 2
2 2 2

输出

复制
21