input: from typing import List
  
  def construct_mnist_classification_model() -> keras.Model:
      """ Construct a neural network model in Python to classify the MNIST data set correctly.
      The model should have an input layer with shape (784,), a hidden layer with 128 units and a ReLU activation,
      and an output layer with 10 units and a softmax activation. The model should be compiled with the Adam optimizer
      and the sparse categorical crossentropy loss function, with accuracy as a metric.
      >>> model = construct_mnist_classification_model()
      >>> isinstance(model, keras.Model)
      True
      >>> model.input_shape == (None, 784)
      True
      >>> model.output_shape == (None, 10)
      True
      >>> model.loss == 'sparse_categorical_crossentropy'
      True
      """
      
      # Input layer
      input_layer = keras.layers.Input(shape=(784,))
  
      # Hidden layer
      hidden_layer = keras.layers.Dense(128, 
                      activation='relu')(input_layer)
  
      # Output layer
      output_layer = keras.layers.Dense(10, 
                      activation='softmax')(hidden_layer)
  
      # Model
      model = keras.Model(inputs=input_layer, outputs=output_layer)
  
      # Compile model
      model.compile(optimizer='adam', 
                  loss='sparse_categorical_crossentropy',
                  metrics=['accuracy'])
      
      return model
output:     
      # Input layer
      input_layer = keras.layers.Input(shape=(784,))
  
      # Hidden layer
      hidden_layer = keras.layers.Dense(128, 
                      activation='relu')(input_layer)
  
      # Output layer
      output_layer = keras.layers.Dense(10, 
                      activation='softmax')(hidden_layer)
  
      # Model
      model = keras.Model(inputs=input_layer, outputs=output_layer)
  
      # Compile model
      model.compile(optimizer='adam', 
                  loss='sparse_categorical_crossentropy',
                  metrics=['accuracy'])
      
      return model
  