문제
IOI 과자는 전통 방식대로 센베이를 굽는다. 숯불에 앞면을 일정 시간 굽고, 뒤집어서 뒷면을 같은 시간 굽는다. 기계는 세로 \(R\)행, 가로 \(C\)열로 센베이를 놓고 굽는다. 평소에는 앞면이 다 구워지면 한꺼번에 뒤집는다. 어느 날 뒤집기 직전에 지진이 나서 몇 장이 뒤집혔다. 앞면을 더 구우면 전통 시간을 넘겨 상품이 되지 못한다. 그래서 아직 안 뒤집힌 장만 뒤집으려 했다. 이 기계는 가로로 여러 행을 한꺼번에, 또는 세로로 여러 열을 한꺼번에 뒤집을 수는 있지만, 한 장만 뒤집지는 못한다. 행을 몇 개 한 번 한꺼번에 뒤집고, 이어서 열을 몇 개 한 번 한꺼번에 뒤집어, 앞면을 태우지 않고 양면을 구울 수 있는 센베이(출하할 수 있는 센베이) 수를 되도록 많이 만들기로 했다. 행을 하나도 안 뒤집거나 열을 하나도 안 뒤집는 경우도 생각한다. 출하할 수 있는 센베이 수의 최댓값을 출력하는 프로그램을 작성하라. 검은 칸은 앞면이 구워지는 상태, 흰 칸은 뒷면이 구워지는 상태이다. 예제 1에서는 1행을 뒤집고 이어서 1열과 5열을 뒤집으면 출하할 수 있는 센베이가 9장이다. |
입력
입력은 다음 형식으로 주어진다.
\(R\) \(C\)
\(a_{1,1}\) \(a_{1,2}\) \(\cdots\) \(a_{1,C}\)
\(\vdots\)
\(a_{R,1}\) \(a_{R,2}\) \(\cdots\) \(a_{R,C}\)
- 첫째 줄에 \(R\), \(C\)가 공백 하나로 구분되어 주어진다.
- 다음 \(R\)줄에 지진 직후 상태가 주어진다. \(i\)번째 줄에 \(C\)개의 정수 \(a_{i,1}, \ldots, a_{i,C}\)가 공백 하나로 구분되어 주어진다.
- \(a_{i,j}\)가 \(1\)이면 앞면이 구워지는 상태, \(0\)이면 뒷면이 구워지는 상태이다.
- \(1 \le R \le 10\)
- \(1 \le C \le 10000\)
- 입력되는 값은 모두 정수이다.
출력
다음 형식으로 출력한다.
첫째 줄에 출하할 수 있는 센베이의 최대 장수를 출력한다.
예시 1
입력
2 5
0 1 0 1 0
1 0 0 0 1
출력
9
예시 2
입력
3 6
1 0 0 0 1 0
1 1 1 0 1 0
1 0 1 1 0 1
출력
15