input: 
  from typing import List
  from keras.layers import Input, Dense
  from keras.models import Model
  
  def construct_mnist_model() -> Model:
      """ Construct a neural network model using Keras to classify the MNIST data set correctly.
      The model should have an input layer of shape (784,), a hidden layer with 128 units and ReLU activation,
      and an output layer with 10 units and softmax activation. The model should then be compiled with the Adam optimizer,
      sparse categorical crossentropy loss, and accuracy metrics.
      
      >>> model = construct_mnist_model()
      >>> model.inputs[0].shape.as_list()
      [None, 784]
      >>> model.outputs[0].shape.as_list()
      [None, 10]
      """
      
      # Input layer
      input_layer = Input(shape=(784,))
      
      # Hidden layer
      hidden_layer = Dense(128, activation='relu')(input_layer)
      
      # Output layer
      output_layer = Dense(10, activation='softmax')(hidden_layer)
      
      # Model
      model = 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 = Input(shape=(784,))
      
      # Hidden layer
      hidden_layer = Dense(128, activation='relu')(input_layer)
      
      # Output layer
      output_layer = Dense(10, activation='softmax')(hidden_layer)
      
      # Model
      model = Model(inputs=input_layer, outputs=output_layer)
      
      # Compile model
      model.compile(optimizer='adam', 
                    loss='sparse_categorical_crossentropy',
                    metrics=['accuracy'])
      
      return model