





'''simple docstring'''


from collections import defaultdict


def 						__a(SCREAMING_SNAKE_CASE_	:       str		,							SCREAMING_SNAKE_CASE_	:       str     ):



    '''simple docstring'''





    _lowerCAmelCase						      =   first_str.lower().strip()
    _lowerCAmelCase						      =   second_str.lower().strip()

    # Remove whitespace
    _lowerCAmelCase						      =   first_str.replace(" "		,							""     )
    _lowerCAmelCase						      =   second_str.replace(" "		,							""     )

    # Strings of different lengths are not anagrams
    if len(SCREAMING_SNAKE_CASE_     ) != len(SCREAMING_SNAKE_CASE_     ):
        return False

    # Default values for count should be 0
    _lowerCAmelCase						      =   defaultdict(SCREAMING_SNAKE_CASE_     )

    # For each character in input strings,
    # increment count in the corresponding
    for i in range(len(SCREAMING_SNAKE_CASE_     )     ):
        count[first_str[i]] += 1
        count[second_str[i]] -= 1

    return all(_count == 0 for _count in count.values()     )


if __name__ == "__main__":
       from doctest import testmod

       testmod()
       _SCREAMING_SNAKE_CASE									=				input("Enter the first string ").strip()
       _SCREAMING_SNAKE_CASE									=				input("Enter the second string ").strip()

       _SCREAMING_SNAKE_CASE									=				check_anagrams(input_a, input_b)
       print(f'''{input_a} and {input_b} are {'' if status else 'not '}anagrams.''')










'''simple docstring'''



from queue import PriorityQueue
from typing import Any

import numpy as np



def  __UpperCAmelCase						(					SCREAMING_SNAKE_CASE__:						dict,       SCREAMING_SNAKE_CASE__:						str,       SCREAMING_SNAKE_CASE__:						set,       SCREAMING_SNAKE_CASE__:						set,       SCREAMING_SNAKE_CASE__:						dict,       SCREAMING_SNAKE_CASE__:						dict,       SCREAMING_SNAKE_CASE__:						PriorityQueue,       SCREAMING_SNAKE_CASE__:						dict,       SCREAMING_SNAKE_CASE__:						float | int,       )	->      float | int:

   """simple docstring"""
   for nxt, d in graph[v]:
      if nxt in visited_forward:
         continue
      __a					  =     cst_fwd.get(SCREAMING_SNAKE_CASE__,       np.inf     )
      __a					  =     cst_fwd[v] + d
      if new_cost_f < old_cost_f:
         queue.put((new_cost_f, nxt)     )
         __a					  =     new_cost_f
         __a					  =     v
      if nxt in visited_backward:
         if cst_fwd[v] + d + cst_bwd[nxt] < shortest_distance:
            __a					  =     cst_fwd[v] + d + cst_bwd[nxt]
   return shortest_distance



def  __UpperCAmelCase						(					SCREAMING_SNAKE_CASE__:						str,       SCREAMING_SNAKE_CASE__:						str,       SCREAMING_SNAKE_CASE__:						dict,       SCREAMING_SNAKE_CASE__:						dict     )	->      int:

   """simple docstring"""
   __a					  =     -1

   __a					  =     set()
   __a					  =     set()
   __a					  =     {source: 0}
   __a					  =     {destination: 0}
   __a					  =     {source: None}
   __a					  =     {destination: None}
   __a					  =     PriorityQueue()
   __a					  =     PriorityQueue()

   __a					  =     np.inf

   queue_forward.put((0, source)     )
   queue_backward.put((0, destination)     )

   if source == destination:
      return 0

   while not queue_forward.empty() and not queue_backward.empty():
      __a  ,      __a					  =     queue_forward.get()
      visited_forward.add(SCREAMING_SNAKE_CASE__     )

      __a  ,      __a					  =     queue_backward.get()
      visited_backward.add(SCREAMING_SNAKE_CASE__     )

      __a					  =     pass_and_relaxation(
          SCREAMING_SNAKE_CASE__,       SCREAMING_SNAKE_CASE__,       SCREAMING_SNAKE_CASE__,       SCREAMING_SNAKE_CASE__,       SCREAMING_SNAKE_CASE__,       SCREAMING_SNAKE_CASE__,       SCREAMING_SNAKE_CASE__,       SCREAMING_SNAKE_CASE__,       SCREAMING_SNAKE_CASE__,       )

      __a					  =     pass_and_relaxation(
          SCREAMING_SNAKE_CASE__,       SCREAMING_SNAKE_CASE__,       SCREAMING_SNAKE_CASE__,       SCREAMING_SNAKE_CASE__,       SCREAMING_SNAKE_CASE__,       SCREAMING_SNAKE_CASE__,       SCREAMING_SNAKE_CASE__,       SCREAMING_SNAKE_CASE__,       SCREAMING_SNAKE_CASE__,       )

      if cst_fwd[v_fwd] + cst_bwd[v_bwd] >= shortest_distance:
         break

   if shortest_distance != np.inf:
      __a					  =     shortest_distance
   return shortest_path_distance


__UpperCamelCase   :							Dict         =   {
    """B""": [["""C""", 1]],
    """C""": [["""D""", 1]],
    """D""": [["""F""", 1]],
    """E""": [["""B""", 1], ["""G""", 2]],
    """F""": [],
    """G""": [["""F""", 1]],
}
__UpperCamelCase   :							int         =   {
    """B""": [["""E""", 1]],
    """C""": [["""B""", 1]],
    """D""": [["""C""", 1]],
    """F""": [["""D""", 1], ["""G""", 1]],
    """E""": [[None, np.inf]],
    """G""": [["""E""", 2]],
}

if __name__ == "__main__":
 import doctest

 doctest.testmod()