





from graphs.minimum_spanning_tree_kruskal import kruskal

def 							SCREAMING_SNAKE_CASE__       (  )      ->						int:
  _lowercase							= 9
  _lowercase							= [
      [0, 1, 4],
      [0, 7, 8],
      [1, 2, 8],
      [7, 8, 7],
      [7, 6, 1],
      [2, 8, 2],
      [8, 6, 6],
      [2, 3, 7],
      [2, 5, 4],
      [6, 5, 2],
      [3, 5, 14],
      [3, 4, 9],
      [5, 4, 10],
      [1, 7, 11],
  ]

  _lowercase							= kruskal(snake_case__			,							snake_case__     )

  _lowercase							= [
      [7, 6, 1],
      [2, 8, 2],
      [6, 5, 2],
      [0, 1, 4],
      [2, 5, 4],
      [2, 3, 7],
      [0, 7, 8],
      [3, 4, 9],
  ]

  assert sorted(snake_case__     ) == sorted(snake_case__     )












from __future__ import annotations

from collections.abc import Generator

def 							SCREAMING_SNAKE_CASE__       (  )      ->						Generator[int, None, None]:
  _lowercase							= {}
  _lowercase							= 2
  while True:
    _lowercase							= factor_map.pop(snake_case__			,							snake_case__     )
    if factor:
      _lowercase							= factor + prime
      while x in factor_map:
        x += factor
      _lowercase							= factor
    else:
      _lowercase							= prime
      yield prime
    prime += 1

def 							SCREAMING_SNAKE_CASE__       (  snake_case__  :float = 1E10     )      ->						int:
  _lowercase							= sieve()

  _lowercase							= 1
  while True:
    _lowercase							= next(snake_case__     )
    if (2 * prime * n) > limit:
      return n
    # Ignore the next prime as the reminder will be 2.
    next(snake_case__     )
    n += 2


if __name__ == "__main__":
      print(solution())