input: from typing import List, Dict
  
  def print_grade_table(students: List[Dict[str, any]]) -> None:
      """
      Prints a formatted table of grades for a given list of students.
      
      >>> print_grade_table([{'name': "John", 'grade': 92}, {'name': "Alice", 'grade': 95}, {'name': "Bob", 'grade': 87}])
      Name        Grade
      ---------------
      John        92
      Alice       95
      Bob         87
      """
      max_name_length = max(len(student['name']) for student in students)
      line_template = "{{name:<{max_name_length}}}   {{grade}}".format(max_name_length=max_name_length)
      header = line_template.format(name='Name', grade='Grade')
      sep = '-' * len(header)
      print(header)
      print(sep)
      for student in students:
          print(line_template.format(**student))
output:     max_name_length = max(len(student['name']) for student in students)
      line_template = "{{name:<{max_name_length}}}   {{grade}}".format(max_name_length=max_name_length)
      header = line_template.format(name='Name', grade='Grade')
      sep = '-' * len(header)
      print(header)
      print(sep)
      for student in students:
          print(line_template.format(**student))