You will be given a two-dimensional array with row consisting values 0 or 1.  
A move consists of choosing any column or row, and toggling all the 0’s as 1’s and 1’s as 0’s.  
After making the required moves, every row represents a binary number and the score of the matrix will be sum of all the numbers represented as binary numbers in each row.  
Find the highest possible score.  
$Example:$ 
Input:

0 0 1 1

1 0 1 0

1 1 0 0  
Output:

39
Explanation:

Toggled to

1 1 1 1

1 0 0 1

1 1 1 1  
0b1111 + 0b1001 + 0b1111 = 15 + 9 + 15 = 39

-----Input:-----
- First line will contains $m$, $n$ for the size of the 2-D array. 
- Contains $m$ lines of $n$ space-separated values each. 

-----Output:-----
Single integer which is the maximum score obtained by the sum of binary numbers.

-----Constraints-----
- $1 \leq m, n \leq 20$
- $A[i][j] = 1$ or $0$ 

-----Sample Input:-----
3 4  
0 0 1 1  
1 0 1 0  
1 1 0 0  

-----Sample Output:-----
39

```python

USER_FILENAME = "<user_code>"
import sys, json, builtins
import math, heapq, bisect, itertools, functools, collections, statistics, fractions, decimal, operator, array, random, re, string, os, pathlib
try:
    import resource as _res
except Exception:
    _res = None
from collections import Counter, defaultdict, deque, OrderedDict
from functools import lru_cache, reduce
from itertools import accumulate, permutations, combinations, product
from math import gcd, ceil, floor, sqrt
from decimal import Decimal
try:
    from typing import *
except Exception:
    pass
try:
    sys.setrecursionlimit(1_000_000)
except Exception:
    pass
try:
    import site as _site
    try:
        _sys_sites = _site.getsitepackages() if hasattr(_site, "getsitepackages") else []
        for _p in _sys_sites:
            if _p and _p not in sys.path:
                sys.path.append(_p)
    except Exception:
        pass
    try:
        _usp = _site.getusersitepackages()
        if isinstance(_usp, str):
            _usp = [_usp]
        for _p in _usp:
            if _p and _p not in sys.path:
                sys.path.append(_p)
    except Exception:
        pass
except Exception:
    pass

ns = {"__name__": "__main__"}
for _k, _v in list(globals().items()):
    if not _k.startswith("_"):
        ns[_k] = _v
_CODE = '\r\ndef row(array,j):\r\n    for i in range(len(array[0])):\r\n        if(array[j][i]==0):\r\n            array[j][i]=1\r\n        else:\r\n            array[j][i]=0\r\n\r\n\r\ndef col(array,j):\r\n    for i in range(len(array)):\r\n        if(array[i][j]==0):\r\n            array[i][j] =1\r\n        else:\r\n            array[i][j] = 0\r\n\r\n\r\n\r\nm,n = list(map(int,input().split(" ")))\r\nlt = []\r\nfor i in range(m):\r\n    temp = list(map(int,input().split(" ")))\r\n    lt.append(temp)\r\nfor i in range(len(lt)):\r\n    if(lt[i][0]==0):\r\n        row(lt,i)\r\n\r\nfor i in range(1,len(lt[0])):\r\n    count1 =0\r\n    count0 =0\r\n    for j in range(len(lt)):\r\n        if(lt[j][i]==0):\r\n            count0 = count0+1\r\n        else:\r\n            count1 = count1 +1\r\n    if(count0>count1):\r\n        col(lt,i)\r\nst = []\r\nfor i in range(len(lt)):\r\n    temp1 =""\r\n    for j in range(len(lt[i])):\r\n        temp1 = temp1 + str(lt[i][j])\r\n    st.append(temp1)\r\nans = 0\r\n#print(st)\r\nfor i in range(len(st)):\r\n    ans = ans+int(st[i],2)\r\nprint(ans)\r\n'
_co = compile(_CODE, USER_FILENAME, "exec")
exec(_co, ns, ns)

```

Measured memory_bytes: 13969