input: 
  def compute_3layer_nn_output(input_data, hidden_layer, output_layer):
      """Compute the output of a 3-layer artificial neural network.
      Input:
      - input_data: numpy array representing the input layer.
      - hidden_layer: numpy array representing the hidden layer weights.
      - output_layer: numpy array representing the output layer weights.
      
      Output:
      The function computes the output of the network by first calculating the product 
      of the input layer with the hidden layer weights, then multiplying that result 
      by the output layer weights.
      
      Example:
      >>> compute_3layer_nn_output(np.array([2, 3]), np.array([[0.1, 0.4], [0.8, 0.6], [0.3, 0.9]]), np.array([0.3, 0.7]))
      array([0.55, 0.45])
      """
  
output:     hidden_output = np.dot(input_data, hidden_layer.T)
      final_output = np.dot(hidden_output, output_layer)
      return final_output