Problem Statement 
 You have a rectangular chocolate bar that consists of width x height square tiles. You can split it into two rectangular pieces by creating a single vertical or horizontal break along tile edges. For example, a 2 x 2 chocolate bar can be divided into two 2 x 1 pieces, but it cannot be divided into two pieces, where one of them is 1 x 1. You can repeat the split operation as many times as you want, each time splitting a single rectangular piece into two rectangular pieces. Your goal is to create a piece consisting of exactly nTiles tiles. Return the minimal number of split operations necessary to reach this goal. If it is impossible, return 1.


Definition 
 Class:  Chocolate  Method:  minSplitNumber  Parameters:  int, int, int  Returns:  int  Method signature:  int minSplitNumber(int width, int height, int nTiles)  (be sure your method is public) 




Constraints 
  width will be between 1 and 10^9, inclusive. 
  height will be between 1 and 10^9, inclusive. 
  nTiles will be between 1 and 10^9, inclusive. 

Examples 
0)  
  Returns: 1  You can split the chocolate bar into two rectangular pieces 3 x 4 and 2 x 4 by creating a single vertical break. Only one break is necessary. 


1)  
  Returns: 0  The chocolate bar consists of exactly 120 tiles. 


2)  
 
3)  
 