input: from typing import List, Tuple
  
  def compute_neural_network_output(input_layer: List[float], hidden_layer: List[List[float]], output_layer: List[float]) -> float:
      """ Compute the output of a 3-layer artificial neural network.
      >>> compute_neural_network_output([2, 3], [[0.1, 0.4], [0.8, 0.6], [0.3, 0.9]], [0.3, 0.7])
      0.3
      """
output:     hidden_output = []
      for neuron in hidden_layer:
          activation = sum(w * x for w, x in zip(neuron, input_layer))
          hidden_output.append(activation)
      
      final_output = sum(w * x for w, x in zip(output_layer, hidden_output))
      return final_output