input: def construct_mnist_classifier() -> keras.Model:
      """Construct a neural network model using Keras to classify the MNIST dataset correctly.
      The model should have an input layer with a shape of (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 using the Adam optimizer and sparse categorical
      crossentropy loss.
      Example:
      >>> model = construct_mnist_classifier()
      >>> print(model.summary())
      Model: "model"
      _________________________________________________________________
      Layer (type)                 Output Shape              Param #   
      =================================================================
      input_1 (InputLayer)         [(None, 784)]             0         
      _________________________________________________________________
      dense (Dense)                (None, 128)               100480    
      _________________________________________________________________
      dense_1 (Dense)              (None, 10)                1290      
      =================================================================
      Total params: 101,770
      Trainable params: 101,770
      Non-trainable params: 0
      _________________________________________________________________
      """
      input_layer = keras.layers.Input(shape=(784,))
      hidden_layer = keras.layers.Dense(128, activation='relu')(input_layer)
      output_layer = keras.layers.Dense(10, activation='softmax')(hidden_layer)
      model = keras.Model(inputs=input_layer, outputs=output_layer)
      model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
      return model
output:     input_layer = keras.layers.Input(shape=(784,))
      hidden_layer = keras.layers.Dense(128, activation='relu')(input_layer)
      output_layer = keras.layers.Dense(10, activation='softmax')(hidden_layer)
      model = keras.Model(inputs=input_layer, outputs=output_layer)
      model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
      return model