Problem Statement 
 You are given two matrices A and B. Each matrix is represented by a String[] containing only '0' and '1' digits. The jth character of the ith element is the value at cell (i, j). Your goal is to transform matrix A into matrix B using a series of swaps. On each swap, you choose two adjacent (horizontally, vertically or diagonally) cells in matrix A and swap their values.
There is a limit to the number of times each cell in matrix A can be used. You are given a third matrix count as a String[] containing only digits ('0''9'). Cell (i, j) in matrix A can be used in a maximum of count(i, j) swaps. Return the fewest number of swaps required to achieve your goal, or return 1 if it is impossible. 

Definition 
 Class:  TransformMatrix  Method:  transform  Parameters:  String[], String[], String[]  Returns:  int  Method signature:  int transform(String[] A, String[] B, String[] count)  (be sure your method is public) 




Constraints 
  A will contain between 1 and 20 elements, inclusive.

  A, B and count will contain the same number of elements.

  Each element of A, B and count will contain between 1 and 20 digits, inclusive.

  Each element of A, B and count will contain the same number of characters.

  Each element of count will contain only digits ('0' to '9').

  Each element of A and B will contain only '0' (zero) and '1' (one) digits. 

Examples 
0)  
 {"110",
"000",
"001"}  {"000",
"110",
"100"}  {"222",
"222",
"222"} 
 Returns: 4  Here is one of the ways:
(0,0)  (1,1)
(0,1)  (1,0)
(2,2)  (2,1)
(2,1)  (2,0) 


1)  
  Returns: 1  Just swap the values in the two cells of the matrix. 


2)  
 {"111",
"000",
"111"}  {"111",
"000",
"111"}  {"013",
"537",
"136"} 
 Returns: 0  Matrix A is already equal to matrix B, so no swaps are required. 


3)  
 {"001",
"110"}  {"000",
"111"}  {"000",
"111"} 
 Returns: 1  Here we can't use any cell from row 0. 


4)  
 {"100",
"000"}  {"000",
"000"}  {"999",
"999"} 
 Returns: 1  The two matrices contain a different number of '1's, so it is impossible to transform one into the other. 


5)  
 {"011101",
"110000",
"000011",
"000000",
"100000"}  {"110100",
"000011",
"000000",
"110001",
"000010"}  {"305713",
"537211",
"352421",
"242212",
"333313"} 
 Returns: 10  

6)  
 {"10",
"00"}  {"00",
"01"}  {"11",
"11"} 
 Returns: 1  
