input: from typing import List
  
  def generateMarkov(text: str) -> str:
      """ Generate a Markov chain based on the given text input.
      Given a text input, the function splits the text into words and builds
      a dictionary where the keys are words from the text and the values are
      dictionaries of subsequent words and their frequencies. The function then
      generates a new text of 100 words based on the Markov chain model.
  
      >>> generateMarkov('Alice was beginning to get very tired of sitting by her sister on the bank, and of having nothing to do: once or twice she had peeped into the book her sister was reading, but it had no pictures or conversations in it, `and what is the use of a book,' thought Alice `without pictures or conversation?')
      `Return a string of 100 words generated from the input text based on the Markov chain model.`
      """
output:     import random
  
      words = text.split()
      markov_dict = {}
  
      for i in range(len(words) - 1):
          current_word = words[i]
          next_word = words[i + 1]
  
          if current_word not in markov_dict:
              markov_dict[current_word] = {}
  
          if next_word not in markov_dict[current_word]:
              markov_dict[current_word][next_word] = 0
  
          markov_dict[current_word][next_word] += 1
  
      current_word = random.choice(words)
      generated_text = [current_word]
  
      for _ in range(100):
          if current_word not in markov_dict:
              current_word = random.choice(words)
          next_word_options = markov_dict[current_word]
          next_word = random.choices(list(next_word_options.keys()), weights=list(next_word_options.values()))[0]
          generated_text.append(next_word)
          current_word = next_word
  
      return ' '.join(generated_text)