Problem Statement  
Jack has bought a rectangular table containing a grid of lamps. Each lamp is initially either "on" or "off". There is a switch underneath each column, and when the switch is flipped, all the lamps in that column reverse their states ("on" lamps become "off" and vice versa). A row in the grid is considered lit if all the lamps in that row are "on". Jack must make exactly K flips. The K flips do not necessarily have to be performed on K distinct switches. His goal is to have as many lit rows as possible after making those flips. You are given a String[] initial, where the jth character of the ith element is '1' (one) if the lamp in row i, column j is initially "on", and '0' (zero) otherwise. Return the maximal number of rows that can be lit after performing exactly K flips.  
Definition  
 
Constraints  
  initial will contain between 1 and 50 elements, inclusive.  
  Each element of initial will contain between 1 and 50 characters, inclusive.  
  Each element of initial will contain the same number of characters.  
  Each element of initial will contain only the digits '0' and '1'.  
  K will be between 0 and 1000, inclusive.  
Examples  
0)  
 
1)  
 
2)  
 
3)  
 
4)  
 
5)  
