编程题
### 问题描述
在一个数字矩阵转换游戏中,原原需要处理一个由 $0$ 和 $1$ 组成的二维矩阵,矩阵具有 $N$ 行和 $M$ 列。每次操作,原原可以选择一行或一列,将其所有元素的状态翻转(即将所有的 $0$ 变成 $1$,将所有的 $1$ 变成 $0$)。原原可以执行任意次数的操作。操作结束后,每一行的数字序列将被视为一个二进制数,其中第一列代表最高有效位。原原的目标是最大化这 $N$ 个二进制数之和。
### 输入格式
输入的第一行包含两个整数 $N$ 和 $M$。
接下来的 $N$ 行,每行包含 $M$ 个由空格隔开的数字,每个数字是 $0$ 或 $1$。
### 输出格式
输出一个整数,表示原原能够得到的最大数之和。
### 样例输入
```
3 3
1 0 0
1 0 0
1 0 0
```
### 样例输出
```
21
```
### 评测数据规模
- $1 \leq N, M \leq 50$