






from bisect import bisect
from itertools import accumulate


def 				__lowerCamelCase     (							__lowerCAmelCase							:					Dict					,							__lowerCAmelCase							:					Dict					,							__lowerCAmelCase							:					Dict					,							__lowerCAmelCase							:					Dict							)     ->  Optional[Any]:
   __UpperCamelCase	:			Any					=					sorted(zip(__lowerCAmelCase					,							__lowerCAmelCase							)					,							key=lambda __lowerCAmelCase							: x[0] / x[1]					,							reverse=__lowerCAmelCase							)
   __UpperCamelCase	,     __UpperCamelCase	:			List[str]					=					[i[0] for i in r], [i[1] for i in r]
   __UpperCamelCase	:			int					=					list(accumulate(__lowerCAmelCase							)							)
   __UpperCamelCase	:			Union[str, Any]					=					bisect(__lowerCAmelCase					,							__lowerCAmelCase							)
   return (
       0
       if k == 0
       else sum(vl[:k]							) + (w - acc[k - 1]) * (vl[k]) / (wt[k])
       if k != n
       else sum(vl[:k]							)
   )


if __name__ == "__main__":
       import doctest

       doctest.testmod()











def 				__lowerCamelCase     (							__lowerCAmelCase							:					str							)     ->  bool:
   if not all(x.isalpha() for x in string							):
      raise ValueError("""String must only contain alphabetic characters."""							)

   __UpperCamelCase	:			List[str]					=					sorted(string.lower()							)
   return len(__lowerCAmelCase							) == len(set(__lowerCAmelCase							)							)


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

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



