






from __future__ import annotations







def       A__				(   _a	:       dict		,	_a	:       str						):





 '''simple docstring'''







 snake_case__							, snake_case__	:     str											=set(_UpperCamelCase						), [start]

 while stack:
  snake_case__	:     List[Any]											=stack.pop()
  explored.add(_UpperCamelCase						)
  # Differences from BFS:
  # 1) pop last element instead of first one
  # 2) add adjacent elements to stack without exploring them
  for adj in reversed(graph[v]						):
   if adj not in explored:
    stack.append(_UpperCamelCase						)
 return explored


__lowerCamelCase						:		Any				      = {
    """A""": ["""B""", """C""", """D"""],
    """B""": ["""A""", """D""", """E"""],
    """C""": ["""A""", """F"""],
    """D""": ["""B""", """D"""],
    """E""": ["""B""", """F"""],
    """F""": ["""C""", """E""", """G"""],
    """G""": ["""F"""],
}

if __name__ == "__main__":
       import doctest

       doctest.testmod()
       print(depth_first_search(G, """A"""))










def 		a__      (		_UpperCamelCase      :			str				):
   if not all(x.isalpha() for x in string				):
      raise ValueError('''String must only contain alphabetic characters.'''				)

   __lowerCamelCase    				=     sorted(string.lower()				)
   return len(_UpperCamelCase				) == len(set(_UpperCamelCase				)				)


if __name__ == "__main__":
  a_								=       input("""Enter a string """).strip()

  a_								=       is_isogram(input_str)
  print(f"{input_str} is {'an' if isogram else 'not an'} isogram.")






