┌─────────────┐ │ ┌┴╖ │ ┌───┤·╟─┐ │ │╓─╖╘╤╝ │ │┌───╖ └╢ʃ╟─┘ │ └┤ × ╟──┐ ╙┬╜ │ ╘═╤═╝╔═╧╗┌┴╖┌──╖│ ┌───────────────┴┐ ║21║│×╟┤>>╟┘ ┌────────┴─────┐ │ ╚═╤╝╘╤╝╘╤═╝ │┌──╖ ╔══╗ │ ┌┴╖ └──┘ │ ┌─┴┤<<╟─╢−1║ ┌─┴─╖┌──────┤·╟───────┐│ │ ╘═╤╝ ╚══╝ ┌─┤ · ╟┴─────┐╘╤╝ ├┘ │ ┌─┴─┐ │ ╘═╤═╝╔════╗│ │ │ │ │ ├────┬┘ │ ║ 21 ║│ │ │ │ └───┘ ┌┴┐ ┌─┘ ╚══╤═╝│ │ │ │┌──╖╔══╗ └┬┘ │┌──╖┌──┴─╖│ │ │ └┤<<╟╢−1║ ┌─┴┐ └┤>>╟┤ << ║│ │ ┌──╖ │ ╘╤═╝╚══╝┌┴┐ │ ╘╤═╝╘══╤═╝│ └───┤>>╟┐│ ┌┴┐ └┬┘┌┴╖┌┐│ └──┘ ╘═╤╝├┘ └┬┘ ├─┤?╟┤├┤╔═══════╗╔══╗┌─╖│ │ └───────┘ ╘╤╝└┘└╢2097151║║−1╟┤≠╟┴┐│ ┌┴╖┌┐ ╚═══════╝╚══╝╘╤╝ ││ ┌─┤?╟┤├───────────────┤ ││ │ ╘╤╝└┘ ╔═╗┌┴╖ ││ │ │ ║0╟┤≠╟─┘│ │ ╚═╝╘═╝ │ └─────────────────────────┘ ╓─────────╖ ║ str→int ║ ╔═════════╗ ╙────┬────╜ ║ 2097151 ╟────┬─────────┴─────────┐ ╚═════════╝ ┌┴┐ │ ╔════╗ ┌───╖ └┬┘ ┌───╖ ╔══════╗ │ ║ 45 ╟──┤ ≠ ╟──┴──┤ ≠ ╟──╢ 8722 ║ │ ╚════╝ ╘═╤═╝ ╘═╤═╝ ╚══════╝ │ └────┬────┘ ┌─┴─╖ ┌───────────────┴─────────────────┤ · ╟──────────────────────┐ │ ╔═════════════════════════════╗╘═╤═╝ │ │ ║ str→int(s) = ║ │ ┌──────────────────┐ │ │ ║ let c = s & (1<<21 − 1); ║ │ │ ╔════╗ ┌────╖ │ │ │ ║ let m = c = '−' | c = '−'; ║ └──┤ ║ 21 ╟──┤ >> ╟──┘ │ │ ║ let w = m ? s >> 21 : s; ║ │ ╚════╝ ╘═╤══╝ │ │ ║ let t = str→int p(w, 0); ║ │ ┌─┴─╖ │ │ ║ t = −1 ? 0 : m ? ~t : t ║ └──────────┤ ? ╟──────┘ │ ╚═════════════════════════════╝ ╘═╤═╝ └────────┐ ╔═══╗ ┌───────────╖ │ │ ║ 0 ╟────────────────┤ str→int p ╟────┘ │ ╚═╤═╝ ┌──────┐ ╘════╤══════╝ ┌─┴─╖ ┌─┴─╖ ┌─┴─╖ ╔═╧══╗ │ ┌──┤ ? ╟──┤ ? ╟──┤ = ║ ║ −1 ║ │ ┌─┴─╖╘═╤═╝ ╘═╤═╝ ╘═╤═╝ ╚════╝ │ │ ~ ║ │ │ ├────────────────┘ ╘═╤═╝ ├─────────────┘ └────┘ ╓───╖ ║ ↯ ║ ╙─┬─╜ ┌──────────────┴────────────────┐ │ ┌─┐ ╔═══╗ ┌───╖ │ │ └─┤ ┌────╢ 0 ╟─┤ ≠ ╟─┴─┐ ┌──────┴─┐ ┌┐ ╔═╧═╕ ┌─┴─╖ ╚═══╝ ╘═╤═╝ │ │ ├─┤├─╢ ├─┤ ? ╟──────────┤ │ │ │ └┘ ╚═╤═╛ ╘═╤═╝ ╔════╗ ┌─┴─╖ │ │ ╔══════╧══╗ ┌─┴─╖ │ ║ −1 ╟─┤ ≠ ╟───┘ │ ║ 2097151 ║ │ ↯ ║ ╚════╝ ╘═══╝ │ ╚═════════╝ ╘═╤═╝ │ ┌─┴──╖ ╔════╗ └─────────────┤ >> ╟─╢ 21 ║ ╘════╝ ╚════╝ ╓┬───────────╖ ┌──╫┘ str→int p ╟────────────────┐ │ ╙────────────╜ ┌─────────────┴───────────────────┐ │ │ ╔═════════╗ │ │ ┌──┴───┬──╢ 2097151 ║ ╔═══╗ ┌───╖ │ ┌───╖ ╔════╗ ┌──┴─┐ │ ┌┴┐ ╚═════════╝ ║ 0 ╟──┤ ≠ ╟──┴──┤ ≠ ╟──╢ −1 ║ │ ┌─┴─╖ ┌───╖ ┌─┴─╖ └┬┘ ╚═══╝ ╘═╤═╝ ╘═╤═╝ ╚════╝ │ │ × ╟──┤ + ╟──┤ · ╟────┴───────────┐ └────┬────┘ │ ╘═╤═╝ ╘═╤═╝ ╘═╤═╝ ╔════╗ ┌───╖ │ ┌───╖ ╔════╗ │ │ ╔═╧══╗ │ │ ║ 48 ╟──┤ ≥ ╟──┴──┤ ≥ ╟──╢ 57 ║ ┌┴┐ │ ║ 10 ║ │ └┐ ╚════╝ ╘═╤═╝ ╘═╤═╝ ╚════╝ └┬┘ │ ╚════╝ │ └┐ ┌───┐ └────┬────┘ │ │ ┌────────┘ └┐ │ ├────────┘ ┌────────────┘ │ │ ╔════╗ ┌────╖ │ └─┬─┘ │ │ │ ║ 21 ╟──┤ >> ╟──┘ ├────────────┐ │ │ │ ╚════╝ ╘═╤══╝ ┌─┴─╖ ╔════╗ │ │ │ │ ┌─────────┴─╖ ┌─┤ ≠ ╟──╢ −1 ║ │ │ │ │ │ str→int p ╟────┤ ╘═══╝ ╚═╤══╝ │ │ │ │ ╘═╤═════════╝ │ ┌─┴─╖ │ │ │ │ ┌─┴─╖ ╔════╗ └────────┤ ? ╟───┘ │ │ └──┤ − ╟──╢ 48 ║ ╘═╤═╝ │ │ ╘═══╝ ╚════╝ ┌─┴─╖ │ └───────────────────────────────┤ ? ╟──────┘ ╘═╤═╝ └──┘ ╔═══╗ ┌───────────╖ ╓─────────╖ ║ 0 ╟──┤ int→str p ╟──┐ ║ int→str ║ ╚═══╝ ╘═════╤═════╝ │ ╙────┬────╜ ┌────────────┴────┐ └──────┴─┐ │ ╔════╗ ┌────╖ │ ╔═══════╗ │ │ ║ 21 ╟──┤ << ╟─┘ ║ −8723 ║ │ │ ╚════╝ ╘══╤═╝ ╚╤══════╝ │ │ ┌┴┐ │ ╔═══╗ │ │ └┬┘ │ ║ 0 ║ │ │ └─┬────┘ ╚═╤═╝ │ │ ┌─┴─╖ ┌─┴─╖ │ └─────────────┤ ? ╟─────┤ < ║ │ ╘═╤═╝ ╘═╤═╝ │ ╔════╗ ┌─┴─╖ ├────┘ ║ 48 ╟──┤ ? ╟───────┘ ╚════╝ ╘═╤═╝ ┌──────────────────┐ ╓┬───────────╖ │ ╔════╗ ┌────╖ ├──╫┘ int→str p ╟─────────────┐ │ ║ 21 ╟──┤ << ╟──┘ ╙────────────╜ ╔════╗ │ │ ╚════╝ ╘═╤══╝ ║ 10 ║ │ │ ┌┴┐ ╚═╤══╝ │ │ └┬┘ ┌───────────╖ ┌─┴──╖ │ │ ├──────────┤ int→str p ╟──┤ ÷% ╟──┐ │ │ ┌┴┐ ╘═════╤═════╝ ╘═╤══╝ ├─┘ │ └┬┘ ┌─┴─╖ │ │ │ ╔════╗ ┌─┴─╖ ┌───╖ ┌──┤ · ╟────────┘ │ │ ║ 48 ╟──┤ + ╟──┤ | ╟──┘ ╘═╤═╝ │ │ ╚════╝ ╘═══╝ ╘═══╝ ┌─┴─╖ │ └───────────────────────────┤ ? ╟──────────────┘ ╘═╤═╝ └──┘ ┌───────┐ │╓─╖ │ ├╢^╟┐ │ │╙─╜│ │ │ ┌┐│ ┌┐│ └┬┤├┴┬┤├┘ │└┘ │└┘ └┬──┘ ┌────┐ │╓──╖│┌┐ └╢<<╟┼┴┘ ╙──╜ ╓──╖ ┌╢>>╟┐ │╙──╜│ │ ┌┴╖ │┌┐ │~║ │ │ ╘╤╝ │┌┴─╖│ └┤<<╟┘ ╘══╝ ╔═╗┌─╖╓─╖ ║0╟┤≠╟╢?╟┐ ╚═╝╘╤╝╙┬╜│ │ ┌┴╖│ │┌┤·╟┤ ││╘╤╝│ │└┬┤┌┴┐ │ ││└┬┘ │ └┬┘ └───┘ ┌───┐ │╓─╖│ └╢<╟┼┐ ╙─╜├┐ └┘ ╓─╖ ┌╢≤╟┐ │╙─╜│ │┌─╖│ └┤<╟┘ ╘╤╝ ┌┴┐ └┬┘ ╓─╖ ┌╢>╟┐ │╙─╜│ └───┼┐ ├┐ └┘ ╓─╖ ┌╢≥╟┐ │╙─╜│ │┌─╖│ └┤>╟┘ ╘╤╝ ┌┴┐ └┬┘ ╒═╕ │·├ ╘╤╛ ┌───────────────────┐ │ ╓───╖ │ ├──╢ = ╟──┐ │ │ ╙───╜ │ │ │ ┌───╖ │ ┌───╖ │ └──┤ < ╟──┴──┤ < ╟──┘ ╘═╤═╝ ╘═╤═╝ ┌┴┐ ┌┴┐ └┬┘ └┬┘ └────┬────┘ ┌┴┐ └┬┘ ┌───────────────────┐ │ ╓───╖ │ ├──╢ ≠ ╟──┐ │ │ ╙───╜ │ │ │ ┌───╖ │ ┌───╖ │ └──┤ < ╟──┴──┤ < ╟──┘ ╘═╤═╝ ╘═╤═╝ ┌┴┐ ┌┴┐ └┬┘ └┬┘ └────┬────┘ ╓───╖ ║ ♯ ║ ╙─┬─╜ ╓───╖ ┌──────────┴────────┐║ ♭ ║ ╔════╗ ┌────╖ │ ╔═══╗ │╙─┬─╜ ║ −1 ╟──┤ << ╟──┴─┬────╢ 1 ║ │ ┌┴┐ ╚════╝ ╘══╤═╝ │ ╚═══╝ │ └┬┘ ┌─┴─╖ ┌┴┐ ╔═══╗ ╔════╗ │┌─┴─╖ │ ♯ ║ └┬┘ ║ 0 ║ ║ −1 ║ ││ ♯ ║ ╘═╤═╝ │ ╚═╤═╝ ╚══╤═╝ │╘═╤═╝ ┌──┴─╖ ┌─┴─╖ ┌─┴─╖ ┌─┴─╖ │ ┌┴┐ │ << ╟──┤ ? ╟──┤ ? ╟──┤ = ║ │ └┬┘ ╘══╤═╝ ╘═╤═╝ ╘═╤═╝ ╘═╤═╝ │ │ ╔═╧═╗ ┌┐ │ ┌┐ │ ├───┘ ║ 1 ╟─┤├─┴─┤├──────────┘ ╚═══╝ └┘ └┘ ┌───────────┐ │ ╓───╖ ┌─┴──╖ └──╢ ÷ ╟──┤ ÷% ╟┬┐ ╙───╜ ╘═╤══╝└┘ ┌───────────┐ │ ╓───╖ ┌─┴──╖ └──╢ % ╟──┤ ÷% ╟┐ ╙───╜ ╘═╤══╝│ ├──┐ └──┘ ┌──────────────────┐ │ ┌───╖ ╓─────╖ │ └──┤ % ╟──╢ mod ╟──┤ ╘═╤═╝ ╙─────╜ │ │ ┌───╖ │ ╔═══╗ ┌┴───┤ + ╟─────┘ ║ 0 ║ │ ╘═╤═╝ ╚═╤═╝ │ ┌─┴─╖ ┌─┴─╖ ┌┴────┤ ? ╟────────┤ < ║ │ ╘═╤═╝ ╘═╤═╝ └────────────────────┘ ┌──────────────────────────────────┐ │ ╓────╖ ┌─┴─╖ ├───────────────────╢ ÷% ║ │ | ║ │ ╙──┬─╜ ╘═╤═╝ │ ┌───╖ ╔═══╗ ┌───╖ │ ┌───╖ ┌──┴──╖ ┌────┐ └──┤ > ╟──╢ 0 ╟──┤ < ╟─┴─┤ | ╟──┤ ÷%p ╟─────┤ │ ╘═╤═╝ ╚═══╝ ╘═╤═╝ ╘═══╝ ╘══╤══╝ ┌─┴─╖ │ ┌──┴─────────┬───┴──┐ ┌─┴──┐ │ ~ ║ │ ┌┴┐ │ ┌┴┐ ─┐ ┌─┴─╖ │ ╘═╤═╝ │ └┬┘ ┌─┴─╖ └┬┘ │ │ ~ ║ │ ┌─┴─╖ │ └────┬─────┤ · ╟────┘ ┌─┴─╖ ╘═╤═╝ │ ┌─┤ ? ╟──┘ │ ╘═╤═╝ ┌──┤ ? ╟───┘ │ │ ╘═╤═╝ └───┬───┘ │ ╘═╤═╝ │ │ └──────────┤ └──────────┘ │ └─────────────────────┘ ╔═══╗ ┌────╖ ║ 1 ╟──┤ >> ╟────┐ ╚═══╝ ╘═╤══╝ │ ┌──┴──╖ ┌─┴─╖ ╓┬────╖ ┌───┤ ÷%p ╟──┤ · ╟──┐ ╟┘÷%p ╟──────┤ ╘══╤══╝ ╘═╤═╝ │ ╙──┬──╜ ┌─┴─╖ ┌─┴─╖ │ │ ┌─────────────────┴───────┤ · ╟──┤ · ╟─────┘ │ │ ╘═╤═╝ ╘═╤═╝ │ │ ╔═══╗ ┌────╖ ┌─┴─╖ ┌─┴─╖ │ │ ║ 1 ╟───────────┤ << ╟──┤ · ╟──┤ · ╟──────────┘ │ ╚═╤═╝ ┌┐ ┌───╖ ╘═╤══╝ ╘═╤═╝ ╘═╤═╝ │ ├───┤├─┤ + ╟────┘ │ └───────────────────┐ │ │ └┘ ╘═╤═╝ ┌─┴─╖ │ │ │ ┌──┴────────────┤ · ╟───────┐ ╔═══╗ ┌────╖ │ │ │ │ ┌───╖ ┌───╖╘═╤═╝┌───╖ │ ║ 1 ╟──┤ << ╟──┘ │ │ ┌──┴───┤ + ╟──┤ ~ ╟──┴──┤ ≥ ╟──┘ ╚═══╝ ╘═╤══╝ └───┤ │ ╘═╤═╝ ╘═══╝ ╘═╤═╝ │ │ │ ┌─┴─╖ │ ┌───╖ │ │ └──────┤ ? ╟──────────────┴────┤ − ╟──────┘ │ ╘═╤═╝ ╘═╤═╝ │ ╔═══╗ ┌─┴─╖ ╔═══╗ ┌─┴─╖ │ ║ 0 ╟──┤ ? ╟──────┐ ║ 0 ╟──┤ ? ╟──┐ │ ╚═══╝ ╘═╤═╝ │ ╚═══╝ ╘═╤═╝ │ │ └─ │ │ │ └────────────────────┤ │ └───────────────────┘ ╓───╖ ╓───╖ ┌───╖ ╔═══╗ ║ ~ ║┌──╢ − ╟───┐ ┌───────────┤ > ╟──╢ 0 ║ ╙─┬─╜│ ╙───╜ ┌─┴─╖ ╓───╖ │ ╘═╤═╝ ╚═══╝ ┌┴┐ │ │ ~ ║ ║ | ╟──┤ ┌───╖ ┌─┴─╖ └┬┘ │ ┌───╖ ╘═╤═╝ ╙───╜ │ ┌──┤ ~ ╟──┤ ? ╟── ┌─┴─╖└──┤ + ╟───┘ └─┤ ╘═══╝ ╘═╤═╝ │ ♯ ║ ╘═╤═╝ └───────────┘ ╘═╤═╝ │ │ ┌──────────────────────────────┐ │ ╓───╖ │ ├───────╢ + ╟───────┐ │ ┌─┴─╖ ╙───╜ │ │ ┌──┤ · ╟─────────────────┴──┐ │ │ ╘═╤═╝ ┌─────────┴──┐ │ │ │ │ ┌────╖ ┌─┴─╖ │ │ │ └──┤ +p ╟──┤ · ╟──┴──────────────────┐ ┌┴┐ ┌┴┐ ╘═╤══╝ ╘═╤═╝┌───╖ ╔═══╗ ┌───╖ │ └┬┘ └┬┘ │ └──┤ ≤ ╟──╢ 0 ╟──┤ ≥ ╟──┴─┐ │ │ │ ╘═╤═╝ ╚═══╝ ╘═╤═╝ │ │ ┌──┴─╖ ┌───╖ ┌┐ ┌─┴─╖ └──────┬──────┘ │ │ │ +p ╟──┤ ♯ ╟──┤├──┤ ? ╟─────────────────┤ │ │ ╘══╤═╝ ╘═══╝ └┘ ╘═╤═╝ │ │ │ │ │ │ │ └────┤ ┌─┴─╖ │ └───────────────────────────────────┤ < ╟───────────┘ ╘═══╝ ╓┬───╖ ┌──╫┘+p ╟──┐ │ ╙────╜ │ ┌────┴─────┬────┴────┐ │ ┌───┐ ┌─┴─╖ ┌┐ │ ┌─┴─┤ ├──┤ · ╟──┬─┤├─┴─┐ │ └───┘ ╘═╤═╝ │ └┘ │ │ ┌───────┴───┬┘ │ │ ┌┴┐ ┌┴┐ │ │ └┬┘ └┬┘ │ │ ┌──┴─╖ ┌────╖ │ │ │ │ << ╟──┤ +p ╟─┘ │ │ ╘══╤═╝ ╘══╤═╝ │ │ ╔═╧═╗ │ │ │ ║ 1 ║ │ │ │ ╚═══╝ ┌─┴─╖ │ └──────────┤ ? ╟─────────┘ ╘═╤═╝ ┌────────────────────┐ │ ╓───╖ │ ├──╢ × ╟──┐ │ ┌─┴─╖╙───╜ │ │ │ ~ ║ │ │ ╘═╤═╝ │ │ ┌─┴─╖ │ ┌────╖ │ ┌──┤ · ╟───────┴──┤ ×p ╟──┴─┐ │ ╘═╤═╝ ╘═╤══╝ │ │ ┌─┴──╖ ┌───╖ ┌─┴─╖ ┌─┴─╖ │ │ ×p ╟──┤ ~ ╟──┤ ? ╟───┤ ≤ ║ │ ╘═╤══╝ ╘═══╝ ╘═╤═╝ ╘═╤═╝ │ │ │ ╔═╧═╗ └────┘ ║ 0 ║ ╚═══╝ ┌────────────────────────────────┐ │ ╓┬───╖ │ │ ┌───────────╫┘×p ╟──┤ │ ┌─────────┴──────┐ ╙────╜ │ │ │ ╔═══╗ ┌─┴─╖ ┌────╖ │ │ └──┬────╢ 1 ╟──┤ · ╟──┤ << ╟──┘ │ ┌┴┐ ╚═══╝ ╘═╤═╝ ╘═╤══╝ │ └┬┘ │ │ │ ┌─┴─╖ ┌───╖ ┌─┴─╖ ┌─┴──╖ └───┤ ? ╟──┤ + ╟──┤ · ╟──┤ ×p ║ ╘═╤═╝ ╘═╤═╝ ╘═╤═╝ ╘═╤══╝ ╔═╧═╗ ┌─┴─╖ │ ┌─┴──╖ ╔════╗ ║ 0 ╟──┤ ? ╟────┴────┤ << ╟──╢ −1 ║ ╚═══╝ ╘═╤═╝ ╘════╝ ╚════╝ ┌─────────┐ ┌─────┴───┐ ├─────────────────┐ │ ╔═══╗ ┌─┴─╖ ┌─┴─╖ ┌─────┐ │ │ ║ 0 ╟─┤ ʃ ╟─┤ ? ╟──┐ ┌─┴─╖ │ │ │ ╚═══╝ ╘═╤═╝ ╘═╤═╝ ├──┤ = ║ │ │ ┌─┴─╖ ┌───┘ ┌─┴─╖ │ ╘═╤═╝ │ │ ┌───┤ · ╟───┘ ┌───┤ · ╟──┘ ╔═╧══╗ │ │ │ ╘═╤═╝ │ ╘═╤═╝ ║ −1 ║ │ │ │ │ ╔═══╗ ┌─┴─╖ ╔═╧═╕ ┌─┐ ╚════╝ │ │ │ │ ║ 0 ╟─┤ ? ╟─╢ ├─┴─┘ │ │ │ │ ╚═══╝ ╘═╤═╝ ╚═╤═╛ ┌─────────┐ │ │ │ ┌─┴──╖ ┌─┴─╖ │ │ ╓───╖ │ │ │ │ │ >> ╟────┤ ǁ ╟─┐ │ ┌─╢ ǁ ╟─┘ │ │ ┌───┤ ╘═╤══╝ ╘═══╝ ├───┐ │ │ ╙───╜ │ │ │ ┌─┴─╖ ┌─┴─╖ ╔════╗ ┌─┴─╖ ├─┘ └───┐ ┌─┘ │ │ │ + ╟─┤ × ╟─╢ 21 ║ │ ℓ ║ │ ┌───╖ │ ┌─┴─╖ │ │ ╘═╤═╝ ╘═══╝ ╚════╝ ╘═╤═╝ └─┤ ʘ ╟─┴─┤ · ╟─┘ │ └───────────────────┘ ╘═╤═╝ ╘═╤═╝ └───────────────────────────────┴───────┘ ╔════╗ ║ 21 ║ ╚═╤══╝ ╓───╖ ┌───╖ ┌─┴──╖ ║ ℓ ║ ┌───┤ ℓ ╟──┤ >> ║ ╙─┬─╜ │ ╘═══╝ ╘═╤══╝ │ ┌─┴─╖ └───────┴──┐ │ ♯ ║ ╔═══╗ ┌───╖ │ ╘═╤═╝ ┌────╢ 0 ╟──┤ ≠ ╟─┴┐ │ ┌─┴─╖ ╚═══╝ ╘═╤═╝ │ └───┤ ? ╟───────────┤ │ ╘═╤═╝ ╔════╗ ┌─┴─╖ │ │ ║ −1 ╟──┤ ≠ ╟──┘ ╚════╝ ╘═══╝ ┌───────────────────────────────────┐ │ ┌─ ┌─┴─╖ │ ┌─┴──╖ ╔═══╗ ┌─────────┤ · ╟────┐ │ ┌─┤ ʘp ╟──╢ 0 ║ │ ╓┬────╖ ╘═╤═╝ │ │ │ ╘═╤══╝ ╚═══╝ └─╫┘ ʘp ╟───┘ ┌────┴───┐ │ │ ╓─┴─╖ ╙──┬──╜ ┌─┴─╖ │ │ │ ║ ʘ ║ ┌─────────────┴──────┤ · ╟─┐ │ │ │ ╙─┬─╜ │ ╔════╗ ┌────╖ ╘═╤═╝ │ │ │ └───┘ │ ║ 21 ╟──┤ >> ╟──────┘ │ │ │ │ ╚════╝ ╘═╤══╝ │ │ │ │ ┌──┘ ╔═══╗ │ │ │ ┌───╖ ┌─┴──╖ ┌──┘ ┌────╢ 0 ║ │ │ │ ┌───┤ ♯ ╟──┤ ʘp ╟───┘ ┌─┴─╖ ╚═══╝ │ │ └─┤ ╘═══╝ ╘═╤══╝ ┌─┤ ≠ ║ │ │ │ ╔════╗ ┌─┴─╖ ┌┐ │ ╘═╤═╝ ┌─┴─╖ │ │ ║ −1 ╟──┤ ? ╟──┤├──┤ ├───────────┤ · ╟──┴─┐ │ ╚════╝ ╘═╤═╝ └┘ │ ┌─┴─╖ ╘═╤═╝ ┌─┴─╖ │ │ └─┤ ≠ ║ ┌───────┴────┤ · ╟─────┐ │ │ ╔════╗ ╘═╤═╝ ┌─┴─╖ ╘═╤═╝ │ │ │ ║ −1 ╟───┘┌──┤ · ╟┐ ┌┐ │ │ │ │ ╚════╝ ┌─┴─╖╘═╤═╝├────┤├─────┤ │ │ │ ┌─┤ ≠ ║ │ │ └┘ ┌┴┐ ┌─┴─╖ │ ┌─┴─╖ ┌┐ │ ╘═╤═╝ │ │ └┬┘ │ ℓ ║ └──────────┤ ? ╟───┤├──┤ ├────┘ │ ╔════╗ ┌──┴─╖ ╘═╤═╝ ╘═╤═╝ └┘ │ ┌─┴─╖ │ ║ −1 ╟─┤ << ╟─┐ ┌─┴─╖ │ └─┤ ≠ ║ │ ╚════╝ ╘════╝ ├─┤ × ║ ╘═╤═╝ │ │ ╘═╤═╝ ┌─┴─╖ │ │ ╔═╧══╗ ┌─────┤ ^ ╟─────┘ │ ║ 21 ║ ╔════╗ ┌──┴─╖ ╘═══╝ │ ╚════╝ ║ −1 ╟──┤ << ╟─────────────────────────────┘ ╚════╝ ╘════╝ ╓───╖ ║ ⌠ ║ ╙─┬─╜ ┌──────────┴───────┐ ┌─┴─╖ │ ┌──┤ ╟──────────────┐ │ │ └─┬─╜ ┌───╖ ┌───╖ │ │ │ └───┤ › ╟──┤ ⌠ ╟─┘ │ │ ╘═╤═╝ ╘═══╝ │ │ ╔═══╗ ┌─┴─╖ │ └─╢ 0 ╟──┤ ? ╟──────────┘ ╚═══╝ ╘═╤═╝ │ ┌───────────┐ │ ╓───╖ ┌─┴─╖ └──╢ › ╟──┤ ᴜ ╟───┐ ╙───╜ ╘═╤═╝ │ ├─┐ └─┘ ┌┐ ┌─┤├─┐ ╓───╖ ┌──┤ └┘ │ ║ ᴜ ╟───────────────────────────────────┤ │ ┌─┴─╖ ╙─┬─╜ ╔═══╗ ┌───╖ │ └──┤ ? ╟──┐ │ ╔═════════╗ ║ 0 ╟──┤ < ╟──┘ ╘═╤═╝ │ │ ║ 4194305 ║ ╚═══╝ ╘═╤═╝ ┌─┴─╖ │ │ ╚════╤════╝ ┌────────┴──────────┤ · ╟──┘ │ ╔═══╗ ┌─┴─╖ │ ╔═════════╗ ╘═╤═╝ │ ║ 1 ╟──┤ ? ╟──────┘ ║ 2097151 ╟──┬─┴────┐ │ ╚═══╝ ╘═╤═╝╔═══╗ ┌────╖╚═════════╝┌┐│ │ ┌─┴──╖ ┌┐ ┌┐│ ║ 1 ╟──┤ << ╟───────────┤├┘ │ │ << ╟──┤├──┬──┤├┘ ╚═══╝ ╘═╤══╝ ╔════╗ └┘┌────╖ │ ╘═╤══╝ └┘ │┌┐└┘ ┌┐ │ ║ 21 ╟────┤ >> ╟─┘ ╔═╧══╗ └┤├──┬──┤├───────┘ ╚════╝ ╘═╤══╝ ║ 23 ║ └┘ │ └┘ ┌─┴──╖ ╚════╝ └────────────────────────────┤ ᴜp ╟─ ╘═╤══╝ ┌────────────────────────────────────────────┐ │ ╓┬───╖ │ │ ╟┘ᴜp ╟────────┤ │ ╔═════════╗ ╙─┬──╜ │ │ ║ 2097151 ╟─────┬───────────┴───┐ │ │ ╚═════════╝ ┌┴┐ │ │ │ ╔═══╗ ┌────╖ └┬┘ ┌───┴───┐ │ │ ║ 1 ╟──┤ << ╟─────┘ │ │ │ │ ╚═══╝ ╘══╤═╝ ╔════╗ ┌────╖ │ │ │ │ ┌┴┐ ║ 21 ╟──┤ >> ╟──┴─┐ │ │ ┌──┴─╖ ┌┐ └┬┘ ╚════╝ ╘═╤══╝ │ │ │ │ << ╟──┤├───┬──┘ ┌─┴──╖ ┌─┴─╖ │ │ ╘══╤═╝ └┘ └──────────────┤ ᴜp ╟──┤ ? ╟── │ │ │ ╔════╗ ┌───╖ ╘═╤══╝ ╘═╤═╝ ┌─┴─╖ │ └─────────╢ 22 ╟──┤ + ╟────┘ └───┤ · ╟─┘ ╚════╝ ╘═╤═╝ ╘═╤═╝ ╔════╗ ┌─┴─╖ │ ║ 23 ╟──┤ ? ╟──────────────────┘ ╚════╝ ╘═╤═╝ ╓───╖ ┌───╢ ʝ ╟───────────┐ │ ╙───╜ ┌──────┴──────┐ │ ┌─┴─╖ ┌───╖ ┌─┴─╖ │ ┌────┤ · ╟──┤ ‼ ╟──┤ ‼ ║ │ ┌─┴─╖ ╘═╤═╝ ╘═╤═╝ ╘═╤═╝ │ ┌─┤ ʝ ╟────┘ ┌─┴─╖ │ │ │ ╘═══╝ ┌─┤ · ╟────┘ │ │ │ ╘═╤═╝ │ │ ┌─────────┤ ┌─┴─╖ │ │ │ └─┤ ? ╟─────┐ │ │ │ ╘═╤═╝ │ │ │ ┌─┴─╖ ╔═══╗ ┌─┴─╖ │ │ ├─┤ ╟──╢ 0 ╟──┤ ? ╟─┐ ┌─┴─╖ │ │ └─┬─╜ ╚═══╝ ╘═╤═╝ ├─┤ · ╟─┐ │ │ └─────────────────┘ ╘═╤═╝ │ │ └─────────────────────────┘ │ └───────────────────────────────┘ ╓───╖ ┌──╢ ‼ ╟────────────────────────┐ │ ╙───╜ ┌───╖ ┌───╖ ╔════╗ │ ┌──┴─────────┤ ℓ ╟──┤ × ╟──╢ 21 ║ │ │ ╘═══╝ ╘═╤═╝ ╚════╝ │ ┌──┴─────────┐ ┌────┴──┐ │ │ ┌───╖ ┌─┴─╖ ┌─┴──╖ │ │ │ ┌─┤ + ╟──┤ · ╟──┤ << ║ │ │ └─┤ ╘═╤═╝ ╘═╤═╝ ╘═╤══╝ │ │ │ ┌─┴─╖ ┌─┴─╖ ╔═╧═╗ │ ┌────╖ │ └─┤ ? ╟──┤ > ║ ║ 1 ║ └─┤ << ╟──┘ ╘═╤═╝ ╘═╤═╝ ╚═══╝ ╔═══╗ ╘══╤═╝ ┌┴┐ └──────────╢ 0 ║ ┌┴┐ └┬┘ ╚═══╝ └┬┘ └──────────────┬───────────┘ ┌───────────────────────┐ │ ╓───╖ │ ├───────╢ ɱ ╟────┐ │ ┌─┴─╖ ╙───╜ │ │ ┌──┤ ╟───┐ ┌───┴────┐ │ │ └─┬─╜ ┌─┴─╖ ┌─┴─╖ ┌─┐ │ │ │ └───┤ · ╟──┤ ╟──┴─┘ │ │ │ ╘═╤═╝ └─┬─╜ │ │ │ ┌─┴─╖ ╔═╧═╕ ┌─┐ │ │ │ │ ɱ ╟──╢ ├──┴─┘ │ │ │ ╘═╤═╝ ╚═╤═╛ │ │ │ │ ┌─┴─╖ │ │ │ └────┤ · ╟──────┘ │ │ ╘═╤═╝ │ │ ╔═══╗ ┌─┴─╖ │ └────────╢ 0 ╟──┤ ? ╟────────┘ ╚═══╝ ╘═╤═╝ ╔══╗┌─╖╔═╗ ┌┐ ┌┐ ║10╟┤ǁ╟╢ ║ ┌─────┘├─────┘├───┐ ╚══╝╘╤╝╚═╝ ╔═╗│ ╔═╗│ ╔═╗│ ╔═╧═╕┌───╖│ ║1║│ ║2║│ ║4║│┌╢ ├┤ ɱ ╟┘ ╚╤╝│ ╚╤╝│ ╚╤╝││╚═╤═╛╘═╤═╝ ╔═╗┌┴╖│╔═╗┌┴╖│╔═╗┌┴╖││╔═╧═╗┌─┴╖ ║1╟┤ʃ╟┘║1╟┤ʃ╟┘║1╟┤ʃ╟┘│║ 0 ║│ʝ ╟ ╚═╝╘╤╝ ╚═╝╘╤╝ ╚═╝╘╤╝ │╚═══╝╘═╤╝ │┌─╖ │ │ │ ╔═╧╗ └┤=╟───┴───┐ │ │ ║10║ ╘╤╝ │ │ │ ╚══╝ │ ┌┴╖┌┴─╖│ │ ┌──┤·╟┤· ╟┘ │ │ ╘╤╝╘╤═╝ │ ┌─┴─╖┌┴╖ │ └──┤ ? ╟┤·╟─┘ ╘═╤═╝╘╤╝ └───┘