





"""simple docstring"""






from __future__ import annotations

import sys
from collections import deque
from typing import Generic, TypeVar

A	     =					TypeVar('''T''')




class 			__lowercase     (     Generic[T]							):







     '''simple docstring'''




     __lowerCAmelCase					=					42  # Cache store of keys
     __lowerCAmelCase					=					42  # References of the keys in cache
     __lowerCAmelCase					=					10  # Maximum capacity of cache







     def __init__(  self		,     _UpperCAmelCase       ):
         __a	:  Optional[int]         =					deque()
         __a	:  Dict         =					set()
         if not n:
             __a	:  List[Any]         =					sys.maxsize
         elif n < 0:
             raise ValueError('''n should be an integer greater than 0.'''       )
         else:
             __a	:  str         =					n







     def 	_lowerCamelCase						(  self		,     _UpperCAmelCase       ):
         if x not in self.key_reference:
             if len(self.dq_store       ) == LRUCache._MAX_CAPACITY:
                 __a	:  int         =					self.dq_store.pop()
                 self.key_reference.remove(_UpperCAmelCase       )
         else:
             self.dq_store.remove(_UpperCAmelCase       )

         self.dq_store.appendleft(_UpperCAmelCase       )
         self.key_reference.add(_UpperCAmelCase       )







     def 	_lowerCamelCase						(  self       ):
         for k in self.dq_store:
             print(_UpperCAmelCase       )







     def __repr__(  self       ):
         return f"""LRUCache({self._MAX_CAPACITY}) => {list(self.dq_store       )}"""


if __name__ == "__main__":
  import doctest

  doctest.testmod()

  A	     =					LRUCache(4)
  lru_cache.refer('''A''')
  lru_cache.refer(2)
  lru_cache.refer(3)
  lru_cache.refer('''A''')
  lru_cache.refer(4)
  lru_cache.refer(5)
  lru_cache.display()

  print(lru_cache)
  assert str(lru_cache) == "LRUCache(4) => [5, 4, 'A', 3]"






"""simple docstring"""






def       __A (     a_  :int				,    a_  :int)						->						str:
				if a < 0 or b < 0:
								raise ValueError('''the value of both inputs must be positive''')

				__a	:  Union[str, Any]         =					str(bin(a_))[2:]  # remove the leading "0b"
				__a	:  Union[str, Any]         =					str(bin(a_))[2:]  # remove the leading "0b"

				__a	:  Optional[Any]         =					max(len(a_)				,    len(a_))

				return "0b" + "".join(
				    str(int(char_a != char_b))
				    for char_a, char_b in zip(a_binary.zfill(a_)				,    b_binary.zfill(a_)))


if __name__ == "__main__":
		import doctest

		doctest.testmod()