Problem Statement  
A twodimensional array of integers is positive if the sum of all elements in each row and each column is strictly greater than zero. For example, the following array is positive: 2 1 1 1 2 2 , while the next one is not: 1 1 1 1 2 2 (the sum of the elements in the first column is 0). You will be given a String[] data, representing a 2d array. The jth character of the ith element of data represents the jth number in the ith row of the array. Digits ('0''9') denote numbers between 0 and 9, lowercase letters ('a''z') denote numbers between 10 and 35, respectively, and uppercase letters ('A''Z') denote negative numbers between 1 and 26, respectively. For example, 'a' represents 10, 'c' represents 12, 'A' represents 1 and 'Z' represents 26. In one move you are allowed to change the signs of all numbers in some row or column (i.e., multiply all numbers in a row or in a column by 1). Return the minimal number of moves you'll need to get a positive array, or 1 if this is impossible.  
Definition  
 
Constraints  
  data will contain between 1 and 18 elements, inclusive.  
  Each element of data will contain between 1 and 18 characters, inclusive.  
  Each element of data will contain only digits ('0''9') or letters ('a''z', 'A''Z').  
  All elements of data will have the same length.  
Examples  
0)  
 
1)  
 
2)  
 
3)  
