C++| Brute-Force
\nclass Solution {\npublic:\n    int no(int n){\n        int re = 0;\n        while(n){ n = n&(n-1); re++;} return  re;\n    }\n    \n    int find(vector<vector
```\nclass Solution {\npublic:\n    int no(int n){\n        int re = 0;\n        while(n){ n = n&(n-1); re++;} return  re;\n    }\n    \n    int find(vector<vector<int>>& nums,int bit){\n        unordered_set<int> st;\n        for(int i = 0; i<nums.size();++i){\n            for(int j = 0; j<nums[0].size();++j){\n                if(nums[i][j] && !bool(bit&(1<<j))) st.insert(i);\n            }\n        }\n        return nums.size()-st.size();\n    }\n    \n    int maximumRows(vector<vector<int>>& nums, int numSelect) {\n        int n = nums.size(), m = nums[0].size();\n        int bit = (1<<m)-1, re = 0;\n        for(int i = bit; i>0; i = bit&(i-1)){\n            if(no(i)==numSelect){\n                re = max(find(nums,i),re);\n            }\n        }\n        return re;\n    }\n};\n```
['C', 'Bitmask']