input: 
  def print_grade_table(students):
      """ Takes a list of dictionaries where each dictionary contains a 'name'
      and a 'grade' of the student, and prints a well-formatted table of their names and grades.
      Example:
      input: [{'name': "John", 'grade': 92}, {'name': "Alice", 'grade': 95}, {'name': "Bob", 'grade': 87}]
      prints:
      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))