




class       a__	:







     def __init__(     self  ,		A			)  ->   None:



          '''simple docstring'''



          a     =				set_counts
          a     =				max(A			)
          a     =				len(A			)
          a     =				[1] * num_sets
          a     =				list(range(A			)			)







     def       lowerCAmelCase_    (     self  ,		A  ,		A			)  ->   bool:



          '''simple docstring'''



          a     =				self.get_parent(A			)
          a     =				self.get_parent(A			)

          if src_parent == dst_parent:
               return False

          if self.ranks[dst_parent] >= self.ranks[src_parent]:
               self.set_counts[dst_parent] += self.set_counts[src_parent]
               a     =				0
               a     =				dst_parent
               if self.ranks[dst_parent] == self.ranks[src_parent]:
                    self.ranks[dst_parent] += 1
               a     =				self.set_counts[dst_parent]
          else:
               self.set_counts[src_parent] += self.set_counts[dst_parent]
               a     =				0
               a     =				src_parent
               a     =				self.set_counts[src_parent]

          a     =				max(self.max_set  ,		A			)
          return True







     def       lowerCAmelCase_    (     self  ,		A			)  ->   int:



          '''simple docstring'''



          if self.parents[disj_set] == disj_set:
               return disj_set
          a     =				self.get_parent(self.parents[disj_set]			)
          return self.parents[disj_set]







import math
import unittest

def  SCREAMING_SNAKE_CASE							(       __UpperCamelCase)      ->					bool:
     assert isinstance(__UpperCamelCase		, __UpperCamelCase) and (
         number >= 0
     ), "'number' must been an int and positive"

     if 1 < number < 4:
          # 2 and 3 are primes
          return True
     elif number < 2 or number % 2 == 0 or number % 3 == 0:
          # Negatives, 0, 1, all even numbers, all multiples of 3 are not primes
          return False

     # All primes number are in format of 6k +/- 1
     for i in range(5		, int(math.sqrt(__UpperCamelCase) + 1)		, 6):
          if number % i == 0 or number % (i + 2) == 0:
               return False
     return True




class       a__	( unittest.TestCase				):







     def       lowerCAmelCase_    (     self			)  ->   List[str]:



          '''simple docstring'''



          self.assertTrue(is_prime(2			)			)
          self.assertTrue(is_prime(3			)			)
          self.assertTrue(is_prime(5			)			)
          self.assertTrue(is_prime(7			)			)
          self.assertTrue(is_prime(11			)			)
          self.assertTrue(is_prime(13			)			)
          self.assertTrue(is_prime(17			)			)
          self.assertTrue(is_prime(19			)			)
          self.assertTrue(is_prime(23			)			)
          self.assertTrue(is_prime(29			)			)







     def       lowerCAmelCase_    (     self			)  ->   Tuple:



          '''simple docstring'''



          with self.assertRaises(A			):
               is_prime(-19			)
          self.assertFalse(
              is_prime(0			)  ,		"Zero doesn't have any positive factors, primes must have exactly two."  ,		)
          self.assertFalse(
              is_prime(1			)  ,		"One only has 1 positive factor, primes must have exactly two."  ,		)
          self.assertFalse(is_prime(2 * 2			)			)
          self.assertFalse(is_prime(2 * 3			)			)
          self.assertFalse(is_prime(3 * 3			)			)
          self.assertFalse(is_prime(3 * 5			)			)
          self.assertFalse(is_prime(3 * 5 * 7			)			)


if __name__ == "__main__":
   unittest.main()

