public static int maxProd(int[] input){
    int max1 = max2 = max3 = java.lang.Integer.MIN_VALUE;
    int min1 = min2 java.lang.Integer.MAX_VALUE;
    for(int i=0; i<input.length;i++){
      

      int val= input[i];
      range calcmax{
        if(val > max1){
          max2 = max1;  // dont lose the old max1
          max1=val;
        }
        else if(val > max2 && val < max1){
          max3 = max2;  // dont lose the old max2
          max2 = val;
        }
        else if (val > max3 && val < max2) {
          max3 = val;
        }
      }// end recalc max

      range calcMin{
        if(val < min1){
          min2 = min1;
          min1 = val;
        }
        else if(val < min2 && val > min1){
          min2 = val;
        }
      }// end recalc min
    }