input: Write a python function that takes a list of strings as an input. Each element in the list is a word. The function should return the word that has the highest number of distinct characters. If there are multiple words with the same highest number of distinct characters, return the one that appears first in alphabetical order.
  assert (find_max(["name", "of", "string"]) == "string")
  assert (find_max(["name", "enam", "game"]) == "enam")
  assert (find_max(["aaaaaaa", "bb", "cc"]) == "aaaaaaa")
  assert (find_max(["abc", "cba"]) == "abc")
  assert (find_max(["play", "this", "game", "of","footbott"]) == "footbott")
  assert (find_max(["we", "are", "gonna", "rock"]) == "gonna")
  assert (find_max(["we", "are", "a", "mad", "nation"]) == "nation")
  assert (find_max(["this", "is", "a", "prrk"]) == "this")
  assert (find_max(["b"]) == "b")
  assert (find_max(["play", "play", "play"]) == "play")
output: def find_max(words):
      unique_char_count = [(word, len(set(word))) for word in words]
      max_count = max(count for word, count in unique_char_count)
      max_words = [word for word, count in unique_char_count if count == max_count]
      return min(max_words)