C# Solution .✅❇️
\npublic int MaximumRows(int[][] mat, int cols) {\n        var m = mat.Length;\n        var n = mat[0].Length;\n        var max = 0;\n        for (var i = 0; i 
```\npublic int MaximumRows(int[][] mat, int cols) {\n        var m = mat.Length;\n        var n = mat[0].Length;\n        var max = 0;\n        for (var i = 0; i < 1 << n; i++)\n        {\n            var count = 0;\n            var set = new HashSet<int>();\n            for (var j = 0; j < n; j++)\n            {\n                if ((i & (1 << j)) != 0)\n                {\n                    set.Add(j);\n                }\n            }\n            if (set.Count != cols) continue;\n            for (var j = 0; j < m; j++)\n            {\n                var flag = true;\n                for (var k = 0; k < n; k++)\n                {\n                    if (mat[j][k] == 1 && !set.Contains(k))\n                    {\n                        flag = false;\n                        break;\n                    }\n                }\n                if (flag) count++;\n            }\n            max = Math.Max(max, count);\n        }\n        return max;\n    }\n```
['Bit Manipulation']