Backtrack based solution
Intuition\n Describe your first thoughts on how to solve this problem. \n\n# Approach\n Describe your approach to solving the problem. \n\n# Complexity\n- Time 
# Intuition\n<!-- Describe your first thoughts on how to solve this problem. -->\n\n# Approach\n<!-- Describe your approach to solving the problem. -->\n\n# Complexity\n- Time complexity:\n<!-- Add your time complexity here, e.g. $$O(n)$$ -->\n\n- Space complexity:\n<!-- Add your space complexity here, e.g. $$O(n)$$ -->\n\n# Code\n```python3 []\nclass Solution:\n    def maximumGood(self, statements: List[List[int]]) -> int:\n        n = len(statements)\n        options = []\n        res = 0\n        def bt(cur, n):\n            if n == 0:\n                options.append(cur[::1])\n                return\n            for i in range(2):\n                cur.append(i)\n                bt(cur,n-1)\n                cur.pop()\n        bt([], n)\n        def check(option, statements):\n            for i in range(len(option)):\n                if option[i]:\n                    for j in range(len(statements[i])):\n                        _judge = statements[i][j]\n                        if _judge == 2:\n                            continue\n                        if _judge != option[j]:\n                            return False\n            return True\n        for option in options:\n            if check(option, statements):\n                res = max(res, option.count(1))\n        return res\n\n\n\n\n\n\n\n\n\n\n    \n        \n\n\n        \n```
['Python3']