Problem Statement | 
|      | You have a calculator that can only handle numbers with up to d digits.  Initially, the number shown on the screen is 1.  You must perform exactly op multiplication operations.  Each operation multiplies the number on the screen by a digit between 2 and 9, inclusive.  The result of each operation must be a number with d or less digits.  Return the largest number that can be displayed on the screen after op operations. If there is no way to perform op operations without overflowing the calculator, return -1. | 
|   | 
Definition | 
|      | | Class: | ProdCalc |  | Method: | highest |  | Parameters: | int, int |  | Returns: | long |  | Method signature: | long highest(int d, int op) |  | (be sure your method is public) |  
  | 
|      | 
 | 
|   | 
Constraints | 
| - | d will be between 2 and 8, inclusive. | 
| - | op will be between 0 and 30, inclusive. | 
|   | 
Examples | 
| 0) |  | 
|      |  |  Returns: 729  |  | The calculator can store up to 4 digits. With 3 multiplications, we can obtain at most 729, by using digit 9 every time:  1 * 9 * 9 * 9 = 729. |  
  |  
  | 
| 1) |  | 
|      |  |  Returns: 1  |  | No multiplications can be performed. |  
  |  
  | 
| 2) |  | 
|      |  |  Returns: 98  |  | The storage is limited to 2 digits. The highest number that can be shown on screen after 3 multiplications is 98 (2 * 7 * 7).
 |  
  |  
  | 
| 3) |  | 
|      |  | 
| 4) |  | 
|      |  | 
| 5) |  | 
|      |  |  Returns: -1  |  | Even if we would only use digit 2 every time, 2^30 has more than 8 digits and overflows the calculator. |  
  |  
  | 
| 6) |  | 
|      |  | 
| 7) |  | 
|      |  |