advent-of-code

advent of code attempts
git clone git://bvnf.space/advent-of-code.git
Log | Files | Refs

commit 20f599466cbf8ba5052d777358e854b890df5764
parent 65cb0739fc3ccd6ca1b4ada725313c073a0ee76f
Author: aabacchus <ben@bvnf.space>
Date:   Wed, 21 Dec 2022 21:39:43 +0000

22.14 in Lua

Diffstat:
A2022/14/a.lua | 87+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A2022/14/example | 2++
A2022/14/input | 141+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 230 insertions(+), 0 deletions(-)

diff --git a/2022/14/a.lua b/2022/14/a.lua @@ -0,0 +1,87 @@ +local dbg = require("debugger") +local f +if (arg[1]) then + f = assert(io.open(arg[1], "r")) +else + f = io.stdin +end + +WIDTH = 10000 + +local nodes = {} +local minx, miny, maxx, maxy + +function printgrid() + for y=miny-5,maxy do + for x=minx,maxx do + i = nodes[x *WIDTH + y] + io.write(i == 1 and "#" or i == 2 and "+" or i == 3 and "@" or ".") + end + io.write("\n") + end +end + +for line in f:lines() do + local prev = nil + for x,y in line:gmatch("(%d+),(%d+)") do + x = tonumber(x) + y = tonumber(y) + minx = math.min(x, minx and minx or x) + maxx = math.max(x, maxx and maxx or x) + miny = math.min(y, miny and miny or y) + maxy = math.max(y, maxy and maxy or y) + + if (prev) then + for i = prev.x,x,(prev.x < x and 1 or -1) do + for j = prev.y,y,(prev.y < y and 1 or -1) do + nodes[i*WIDTH + j] = 1 + end + end + end + nodes[x *WIDTH + y] = 1 + prev = {x=x,y=y}; + end +end + +function isempty(x, y) + return (not nodes[x*WIDTH + y] and y < maxy+2) and {x,y} or false +end + +local cntr = 0 +local x,y = 500,0 +while 1 do -- new grains coming in + + --local x, y = 500, 0 + x, y = 500, 0 + + while 1 do -- path of each grain + local xy = isempty(x, y+1) or isempty(x-1, y+1) or isempty(x+1, y+1) or nil + if xy == nil then break end + x, y = xy[1], xy[2] + if y > maxy then break end + end + nodes[x *WIDTH + y] = 2 + if y > maxy then + break + end + cntr = cntr + 1 +end + +print(cntr) + +-- don't reset cntr or reset nodes. + +while 1 do + x, y = 500, 0 + while 1 do + local xy = isempty(x, y+1) or isempty(x-1, y+1) or isempty(x+1, y+1) or nil + if xy == nil then break end + x, y = xy[1], xy[2] + if y == 0 and x == 500 then break end + end + nodes[x *WIDTH + y] = 2 + if y == 0 and x == 500 then break end + cntr = cntr + 1 +end + +print(cntr+2) -- +2 for the two we missed after diff --git a/2022/14/example b/2022/14/example @@ -0,0 +1,2 @@ +498,4 -> 498,6 -> 496,6 +503,4 -> 502,4 -> 502,9 -> 494,9 diff --git a/2022/14/input b/2022/14/input @@ -0,0 +1,141 @@ +532,137 -> 532,130 -> 532,137 -> 534,137 -> 534,127 -> 534,137 -> 536,137 -> 536,135 -> 536,137 -> 538,137 -> 538,127 -> 538,137 -> 540,137 -> 540,132 -> 540,137 -> 542,137 -> 542,135 -> 542,137 -> 544,137 -> 544,127 -> 544,137 -> 546,137 -> 546,131 -> 546,137 -> 548,137 -> 548,134 -> 548,137 -> 550,137 -> 550,133 -> 550,137 +549,140 -> 549,143 -> 541,143 -> 541,147 -> 555,147 -> 555,143 -> 554,143 -> 554,140 +519,98 -> 523,98 +524,111 -> 524,109 -> 524,111 -> 526,111 -> 526,103 -> 526,111 -> 528,111 -> 528,110 -> 528,111 -> 530,111 -> 530,108 -> 530,111 -> 532,111 -> 532,108 -> 532,111 -> 534,111 -> 534,107 -> 534,111 +511,50 -> 511,51 -> 525,51 -> 525,50 +506,46 -> 506,43 -> 506,46 -> 508,46 -> 508,37 -> 508,46 -> 510,46 -> 510,40 -> 510,46 -> 512,46 -> 512,45 -> 512,46 -> 514,46 -> 514,38 -> 514,46 +524,111 -> 524,109 -> 524,111 -> 526,111 -> 526,103 -> 526,111 -> 528,111 -> 528,110 -> 528,111 -> 530,111 -> 530,108 -> 530,111 -> 532,111 -> 532,108 -> 532,111 -> 534,111 -> 534,107 -> 534,111 +555,150 -> 555,154 -> 550,154 -> 550,157 -> 561,157 -> 561,154 -> 557,154 -> 557,150 +506,46 -> 506,43 -> 506,46 -> 508,46 -> 508,37 -> 508,46 -> 510,46 -> 510,40 -> 510,46 -> 512,46 -> 512,45 -> 512,46 -> 514,46 -> 514,38 -> 514,46 +520,56 -> 525,56 +524,111 -> 524,109 -> 524,111 -> 526,111 -> 526,103 -> 526,111 -> 528,111 -> 528,110 -> 528,111 -> 530,111 -> 530,108 -> 530,111 -> 532,111 -> 532,108 -> 532,111 -> 534,111 -> 534,107 -> 534,111 +517,58 -> 522,58 +513,94 -> 517,94 +532,137 -> 532,130 -> 532,137 -> 534,137 -> 534,127 -> 534,137 -> 536,137 -> 536,135 -> 536,137 -> 538,137 -> 538,127 -> 538,137 -> 540,137 -> 540,132 -> 540,137 -> 542,137 -> 542,135 -> 542,137 -> 544,137 -> 544,127 -> 544,137 -> 546,137 -> 546,131 -> 546,137 -> 548,137 -> 548,134 -> 548,137 -> 550,137 -> 550,133 -> 550,137 +498,70 -> 503,70 +506,46 -> 506,43 -> 506,46 -> 508,46 -> 508,37 -> 508,46 -> 510,46 -> 510,40 -> 510,46 -> 512,46 -> 512,45 -> 512,46 -> 514,46 -> 514,38 -> 514,46 +519,94 -> 523,94 +515,30 -> 520,30 +532,137 -> 532,130 -> 532,137 -> 534,137 -> 534,127 -> 534,137 -> 536,137 -> 536,135 -> 536,137 -> 538,137 -> 538,127 -> 538,137 -> 540,137 -> 540,132 -> 540,137 -> 542,137 -> 542,135 -> 542,137 -> 544,137 -> 544,127 -> 544,137 -> 546,137 -> 546,131 -> 546,137 -> 548,137 -> 548,134 -> 548,137 -> 550,137 -> 550,133 -> 550,137 +524,58 -> 529,58 +509,89 -> 509,80 -> 509,89 -> 511,89 -> 511,84 -> 511,89 -> 513,89 -> 513,88 -> 513,89 -> 515,89 -> 515,84 -> 515,89 -> 517,89 -> 517,88 -> 517,89 +507,98 -> 511,98 +549,140 -> 549,143 -> 541,143 -> 541,147 -> 555,147 -> 555,143 -> 554,143 -> 554,140 +527,56 -> 532,56 +532,137 -> 532,130 -> 532,137 -> 534,137 -> 534,127 -> 534,137 -> 536,137 -> 536,135 -> 536,137 -> 538,137 -> 538,127 -> 538,137 -> 540,137 -> 540,132 -> 540,137 -> 542,137 -> 542,135 -> 542,137 -> 544,137 -> 544,127 -> 544,137 -> 546,137 -> 546,131 -> 546,137 -> 548,137 -> 548,134 -> 548,137 -> 550,137 -> 550,133 -> 550,137 +532,137 -> 532,130 -> 532,137 -> 534,137 -> 534,127 -> 534,137 -> 536,137 -> 536,135 -> 536,137 -> 538,137 -> 538,127 -> 538,137 -> 540,137 -> 540,132 -> 540,137 -> 542,137 -> 542,135 -> 542,137 -> 544,137 -> 544,127 -> 544,137 -> 546,137 -> 546,131 -> 546,137 -> 548,137 -> 548,134 -> 548,137 -> 550,137 -> 550,133 -> 550,137 +524,111 -> 524,109 -> 524,111 -> 526,111 -> 526,103 -> 526,111 -> 528,111 -> 528,110 -> 528,111 -> 530,111 -> 530,108 -> 530,111 -> 532,111 -> 532,108 -> 532,111 -> 534,111 -> 534,107 -> 534,111 +532,137 -> 532,130 -> 532,137 -> 534,137 -> 534,127 -> 534,137 -> 536,137 -> 536,135 -> 536,137 -> 538,137 -> 538,127 -> 538,137 -> 540,137 -> 540,132 -> 540,137 -> 542,137 -> 542,135 -> 542,137 -> 544,137 -> 544,127 -> 544,137 -> 546,137 -> 546,131 -> 546,137 -> 548,137 -> 548,134 -> 548,137 -> 550,137 -> 550,133 -> 550,137 +532,137 -> 532,130 -> 532,137 -> 534,137 -> 534,127 -> 534,137 -> 536,137 -> 536,135 -> 536,137 -> 538,137 -> 538,127 -> 538,137 -> 540,137 -> 540,132 -> 540,137 -> 542,137 -> 542,135 -> 542,137 -> 544,137 -> 544,127 -> 544,137 -> 546,137 -> 546,131 -> 546,137 -> 548,137 -> 548,134 -> 548,137 -> 550,137 -> 550,133 -> 550,137 +522,96 -> 526,96 +524,111 -> 524,109 -> 524,111 -> 526,111 -> 526,103 -> 526,111 -> 528,111 -> 528,110 -> 528,111 -> 530,111 -> 530,108 -> 530,111 -> 532,111 -> 532,108 -> 532,111 -> 534,111 -> 534,107 -> 534,111 +549,140 -> 549,143 -> 541,143 -> 541,147 -> 555,147 -> 555,143 -> 554,143 -> 554,140 +535,60 -> 540,60 +506,46 -> 506,43 -> 506,46 -> 508,46 -> 508,37 -> 508,46 -> 510,46 -> 510,40 -> 510,46 -> 512,46 -> 512,45 -> 512,46 -> 514,46 -> 514,38 -> 514,46 +511,50 -> 511,51 -> 525,51 -> 525,50 +506,46 -> 506,43 -> 506,46 -> 508,46 -> 508,37 -> 508,46 -> 510,46 -> 510,40 -> 510,46 -> 512,46 -> 512,45 -> 512,46 -> 514,46 -> 514,38 -> 514,46 +524,111 -> 524,109 -> 524,111 -> 526,111 -> 526,103 -> 526,111 -> 528,111 -> 528,110 -> 528,111 -> 530,111 -> 530,108 -> 530,111 -> 532,111 -> 532,108 -> 532,111 -> 534,111 -> 534,107 -> 534,111 +532,137 -> 532,130 -> 532,137 -> 534,137 -> 534,127 -> 534,137 -> 536,137 -> 536,135 -> 536,137 -> 538,137 -> 538,127 -> 538,137 -> 540,137 -> 540,132 -> 540,137 -> 542,137 -> 542,135 -> 542,137 -> 544,137 -> 544,127 -> 544,137 -> 546,137 -> 546,131 -> 546,137 -> 548,137 -> 548,134 -> 548,137 -> 550,137 -> 550,133 -> 550,137 +555,150 -> 555,154 -> 550,154 -> 550,157 -> 561,157 -> 561,154 -> 557,154 -> 557,150 +533,114 -> 533,118 -> 525,118 -> 525,124 -> 541,124 -> 541,118 -> 538,118 -> 538,114 +549,140 -> 549,143 -> 541,143 -> 541,147 -> 555,147 -> 555,143 -> 554,143 -> 554,140 +532,137 -> 532,130 -> 532,137 -> 534,137 -> 534,127 -> 534,137 -> 536,137 -> 536,135 -> 536,137 -> 538,137 -> 538,127 -> 538,137 -> 540,137 -> 540,132 -> 540,137 -> 542,137 -> 542,135 -> 542,137 -> 544,137 -> 544,127 -> 544,137 -> 546,137 -> 546,131 -> 546,137 -> 548,137 -> 548,134 -> 548,137 -> 550,137 -> 550,133 -> 550,137 +524,111 -> 524,109 -> 524,111 -> 526,111 -> 526,103 -> 526,111 -> 528,111 -> 528,110 -> 528,111 -> 530,111 -> 530,108 -> 530,111 -> 532,111 -> 532,108 -> 532,111 -> 534,111 -> 534,107 -> 534,111 +509,89 -> 509,80 -> 509,89 -> 511,89 -> 511,84 -> 511,89 -> 513,89 -> 513,88 -> 513,89 -> 515,89 -> 515,84 -> 515,89 -> 517,89 -> 517,88 -> 517,89 +532,137 -> 532,130 -> 532,137 -> 534,137 -> 534,127 -> 534,137 -> 536,137 -> 536,135 -> 536,137 -> 538,137 -> 538,127 -> 538,137 -> 540,137 -> 540,132 -> 540,137 -> 542,137 -> 542,135 -> 542,137 -> 544,137 -> 544,127 -> 544,137 -> 546,137 -> 546,131 -> 546,137 -> 548,137 -> 548,134 -> 548,137 -> 550,137 -> 550,133 -> 550,137 +513,98 -> 517,98 +532,137 -> 532,130 -> 532,137 -> 534,137 -> 534,127 -> 534,137 -> 536,137 -> 536,135 -> 536,137 -> 538,137 -> 538,127 -> 538,137 -> 540,137 -> 540,132 -> 540,137 -> 542,137 -> 542,135 -> 542,137 -> 544,137 -> 544,127 -> 544,137 -> 546,137 -> 546,131 -> 546,137 -> 548,137 -> 548,134 -> 548,137 -> 550,137 -> 550,133 -> 550,137 +555,150 -> 555,154 -> 550,154 -> 550,157 -> 561,157 -> 561,154 -> 557,154 -> 557,150 +505,33 -> 510,33 +532,137 -> 532,130 -> 532,137 -> 534,137 -> 534,127 -> 534,137 -> 536,137 -> 536,135 -> 536,137 -> 538,137 -> 538,127 -> 538,137 -> 540,137 -> 540,132 -> 540,137 -> 542,137 -> 542,135 -> 542,137 -> 544,137 -> 544,127 -> 544,137 -> 546,137 -> 546,131 -> 546,137 -> 548,137 -> 548,134 -> 548,137 -> 550,137 -> 550,133 -> 550,137 +498,13 -> 498,16 -> 492,16 -> 492,19 -> 506,19 -> 506,16 -> 501,16 -> 501,13 +524,111 -> 524,109 -> 524,111 -> 526,111 -> 526,103 -> 526,111 -> 528,111 -> 528,110 -> 528,111 -> 530,111 -> 530,108 -> 530,111 -> 532,111 -> 532,108 -> 532,111 -> 534,111 -> 534,107 -> 534,111 +532,137 -> 532,130 -> 532,137 -> 534,137 -> 534,127 -> 534,137 -> 536,137 -> 536,135 -> 536,137 -> 538,137 -> 538,127 -> 538,137 -> 540,137 -> 540,132 -> 540,137 -> 542,137 -> 542,135 -> 542,137 -> 544,137 -> 544,127 -> 544,137 -> 546,137 -> 546,131 -> 546,137 -> 548,137 -> 548,134 -> 548,137 -> 550,137 -> 550,133 -> 550,137 +533,114 -> 533,118 -> 525,118 -> 525,124 -> 541,124 -> 541,118 -> 538,118 -> 538,114 +498,13 -> 498,16 -> 492,16 -> 492,19 -> 506,19 -> 506,16 -> 501,16 -> 501,13 +532,137 -> 532,130 -> 532,137 -> 534,137 -> 534,127 -> 534,137 -> 536,137 -> 536,135 -> 536,137 -> 538,137 -> 538,127 -> 538,137 -> 540,137 -> 540,132 -> 540,137 -> 542,137 -> 542,135 -> 542,137 -> 544,137 -> 544,127 -> 544,137 -> 546,137 -> 546,131 -> 546,137 -> 548,137 -> 548,134 -> 548,137 -> 550,137 -> 550,133 -> 550,137 +509,89 -> 509,80 -> 509,89 -> 511,89 -> 511,84 -> 511,89 -> 513,89 -> 513,88 -> 513,89 -> 515,89 -> 515,84 -> 515,89 -> 517,89 -> 517,88 -> 517,89 +549,140 -> 549,143 -> 541,143 -> 541,147 -> 555,147 -> 555,143 -> 554,143 -> 554,140 +532,137 -> 532,130 -> 532,137 -> 534,137 -> 534,127 -> 534,137 -> 536,137 -> 536,135 -> 536,137 -> 538,137 -> 538,127 -> 538,137 -> 540,137 -> 540,132 -> 540,137 -> 542,137 -> 542,135 -> 542,137 -> 544,137 -> 544,127 -> 544,137 -> 546,137 -> 546,131 -> 546,137 -> 548,137 -> 548,134 -> 548,137 -> 550,137 -> 550,133 -> 550,137 +549,140 -> 549,143 -> 541,143 -> 541,147 -> 555,147 -> 555,143 -> 554,143 -> 554,140 +509,89 -> 509,80 -> 509,89 -> 511,89 -> 511,84 -> 511,89 -> 513,89 -> 513,88 -> 513,89 -> 515,89 -> 515,84 -> 515,89 -> 517,89 -> 517,88 -> 517,89 +533,114 -> 533,118 -> 525,118 -> 525,124 -> 541,124 -> 541,118 -> 538,118 -> 538,114 +498,13 -> 498,16 -> 492,16 -> 492,19 -> 506,19 -> 506,16 -> 501,16 -> 501,13 +509,89 -> 509,80 -> 509,89 -> 511,89 -> 511,84 -> 511,89 -> 513,89 -> 513,88 -> 513,89 -> 515,89 -> 515,84 -> 515,89 -> 517,89 -> 517,88 -> 517,89 +509,89 -> 509,80 -> 509,89 -> 511,89 -> 511,84 -> 511,89 -> 513,89 -> 513,88 -> 513,89 -> 515,89 -> 515,84 -> 515,89 -> 517,89 -> 517,88 -> 517,89 +524,111 -> 524,109 -> 524,111 -> 526,111 -> 526,103 -> 526,111 -> 528,111 -> 528,110 -> 528,111 -> 530,111 -> 530,108 -> 530,111 -> 532,111 -> 532,108 -> 532,111 -> 534,111 -> 534,107 -> 534,111 +503,76 -> 513,76 -> 513,75 +498,13 -> 498,16 -> 492,16 -> 492,19 -> 506,19 -> 506,16 -> 501,16 -> 501,13 +532,137 -> 532,130 -> 532,137 -> 534,137 -> 534,127 -> 534,137 -> 536,137 -> 536,135 -> 536,137 -> 538,137 -> 538,127 -> 538,137 -> 540,137 -> 540,132 -> 540,137 -> 542,137 -> 542,135 -> 542,137 -> 544,137 -> 544,127 -> 544,137 -> 546,137 -> 546,131 -> 546,137 -> 548,137 -> 548,134 -> 548,137 -> 550,137 -> 550,133 -> 550,137 +509,89 -> 509,80 -> 509,89 -> 511,89 -> 511,84 -> 511,89 -> 513,89 -> 513,88 -> 513,89 -> 515,89 -> 515,84 -> 515,89 -> 517,89 -> 517,88 -> 517,89 +533,114 -> 533,118 -> 525,118 -> 525,124 -> 541,124 -> 541,118 -> 538,118 -> 538,114 +521,60 -> 526,60 +532,137 -> 532,130 -> 532,137 -> 534,137 -> 534,127 -> 534,137 -> 536,137 -> 536,135 -> 536,137 -> 538,137 -> 538,127 -> 538,137 -> 540,137 -> 540,132 -> 540,137 -> 542,137 -> 542,135 -> 542,137 -> 544,137 -> 544,127 -> 544,137 -> 546,137 -> 546,131 -> 546,137 -> 548,137 -> 548,134 -> 548,137 -> 550,137 -> 550,133 -> 550,137 +532,137 -> 532,130 -> 532,137 -> 534,137 -> 534,127 -> 534,137 -> 536,137 -> 536,135 -> 536,137 -> 538,137 -> 538,127 -> 538,137 -> 540,137 -> 540,132 -> 540,137 -> 542,137 -> 542,135 -> 542,137 -> 544,137 -> 544,127 -> 544,137 -> 546,137 -> 546,131 -> 546,137 -> 548,137 -> 548,134 -> 548,137 -> 550,137 -> 550,133 -> 550,137 +516,92 -> 520,92 +498,13 -> 498,16 -> 492,16 -> 492,19 -> 506,19 -> 506,16 -> 501,16 -> 501,13 +506,46 -> 506,43 -> 506,46 -> 508,46 -> 508,37 -> 508,46 -> 510,46 -> 510,40 -> 510,46 -> 512,46 -> 512,45 -> 512,46 -> 514,46 -> 514,38 -> 514,46 +506,46 -> 506,43 -> 506,46 -> 508,46 -> 508,37 -> 508,46 -> 510,46 -> 510,40 -> 510,46 -> 512,46 -> 512,45 -> 512,46 -> 514,46 -> 514,38 -> 514,46 +512,33 -> 517,33 +532,137 -> 532,130 -> 532,137 -> 534,137 -> 534,127 -> 534,137 -> 536,137 -> 536,135 -> 536,137 -> 538,137 -> 538,127 -> 538,137 -> 540,137 -> 540,132 -> 540,137 -> 542,137 -> 542,135 -> 542,137 -> 544,137 -> 544,127 -> 544,137 -> 546,137 -> 546,131 -> 546,137 -> 548,137 -> 548,134 -> 548,137 -> 550,137 -> 550,133 -> 550,137 +532,137 -> 532,130 -> 532,137 -> 534,137 -> 534,127 -> 534,137 -> 536,137 -> 536,135 -> 536,137 -> 538,137 -> 538,127 -> 538,137 -> 540,137 -> 540,132 -> 540,137 -> 542,137 -> 542,135 -> 542,137 -> 544,137 -> 544,127 -> 544,137 -> 546,137 -> 546,131 -> 546,137 -> 548,137 -> 548,134 -> 548,137 -> 550,137 -> 550,133 -> 550,137 +528,60 -> 533,60 +524,111 -> 524,109 -> 524,111 -> 526,111 -> 526,103 -> 526,111 -> 528,111 -> 528,110 -> 528,111 -> 530,111 -> 530,108 -> 530,111 -> 532,111 -> 532,108 -> 532,111 -> 534,111 -> 534,107 -> 534,111 +524,111 -> 524,109 -> 524,111 -> 526,111 -> 526,103 -> 526,111 -> 528,111 -> 528,110 -> 528,111 -> 530,111 -> 530,108 -> 530,111 -> 532,111 -> 532,108 -> 532,111 -> 534,111 -> 534,107 -> 534,111 +532,137 -> 532,130 -> 532,137 -> 534,137 -> 534,127 -> 534,137 -> 536,137 -> 536,135 -> 536,137 -> 538,137 -> 538,127 -> 538,137 -> 540,137 -> 540,132 -> 540,137 -> 542,137 -> 542,135 -> 542,137 -> 544,137 -> 544,127 -> 544,137 -> 546,137 -> 546,131 -> 546,137 -> 548,137 -> 548,134 -> 548,137 -> 550,137 -> 550,133 -> 550,137 +498,13 -> 498,16 -> 492,16 -> 492,19 -> 506,19 -> 506,16 -> 501,16 -> 501,13 +503,76 -> 513,76 -> 513,75 +532,137 -> 532,130 -> 532,137 -> 534,137 -> 534,127 -> 534,137 -> 536,137 -> 536,135 -> 536,137 -> 538,137 -> 538,127 -> 538,137 -> 540,137 -> 540,132 -> 540,137 -> 542,137 -> 542,135 -> 542,137 -> 544,137 -> 544,127 -> 544,137 -> 546,137 -> 546,131 -> 546,137 -> 548,137 -> 548,134 -> 548,137 -> 550,137 -> 550,133 -> 550,137 +506,46 -> 506,43 -> 506,46 -> 508,46 -> 508,37 -> 508,46 -> 510,46 -> 510,40 -> 510,46 -> 512,46 -> 512,45 -> 512,46 -> 514,46 -> 514,38 -> 514,46 +532,137 -> 532,130 -> 532,137 -> 534,137 -> 534,127 -> 534,137 -> 536,137 -> 536,135 -> 536,137 -> 538,137 -> 538,127 -> 538,137 -> 540,137 -> 540,132 -> 540,137 -> 542,137 -> 542,135 -> 542,137 -> 544,137 -> 544,127 -> 544,137 -> 546,137 -> 546,131 -> 546,137 -> 548,137 -> 548,134 -> 548,137 -> 550,137 -> 550,133 -> 550,137 +509,89 -> 509,80 -> 509,89 -> 511,89 -> 511,84 -> 511,89 -> 513,89 -> 513,88 -> 513,89 -> 515,89 -> 515,84 -> 515,89 -> 517,89 -> 517,88 -> 517,89 +498,24 -> 513,24 +506,46 -> 506,43 -> 506,46 -> 508,46 -> 508,37 -> 508,46 -> 510,46 -> 510,40 -> 510,46 -> 512,46 -> 512,45 -> 512,46 -> 514,46 -> 514,38 -> 514,46 +524,111 -> 524,109 -> 524,111 -> 526,111 -> 526,103 -> 526,111 -> 528,111 -> 528,110 -> 528,111 -> 530,111 -> 530,108 -> 530,111 -> 532,111 -> 532,108 -> 532,111 -> 534,111 -> 534,107 -> 534,111 +525,98 -> 529,98 +532,137 -> 532,130 -> 532,137 -> 534,137 -> 534,127 -> 534,137 -> 536,137 -> 536,135 -> 536,137 -> 538,137 -> 538,127 -> 538,137 -> 540,137 -> 540,132 -> 540,137 -> 542,137 -> 542,135 -> 542,137 -> 544,137 -> 544,127 -> 544,137 -> 546,137 -> 546,131 -> 546,137 -> 548,137 -> 548,134 -> 548,137 -> 550,137 -> 550,133 -> 550,137 +555,150 -> 555,154 -> 550,154 -> 550,157 -> 561,157 -> 561,154 -> 557,154 -> 557,150 +511,27 -> 516,27 +509,89 -> 509,80 -> 509,89 -> 511,89 -> 511,84 -> 511,89 -> 513,89 -> 513,88 -> 513,89 -> 515,89 -> 515,84 -> 515,89 -> 517,89 -> 517,88 -> 517,89 +514,60 -> 519,60 +532,137 -> 532,130 -> 532,137 -> 534,137 -> 534,127 -> 534,137 -> 536,137 -> 536,135 -> 536,137 -> 538,137 -> 538,127 -> 538,137 -> 540,137 -> 540,132 -> 540,137 -> 542,137 -> 542,135 -> 542,137 -> 544,137 -> 544,127 -> 544,137 -> 546,137 -> 546,131 -> 546,137 -> 548,137 -> 548,134 -> 548,137 -> 550,137 -> 550,133 -> 550,137 +523,54 -> 528,54 +511,50 -> 511,51 -> 525,51 -> 525,50 +524,111 -> 524,109 -> 524,111 -> 526,111 -> 526,103 -> 526,111 -> 528,111 -> 528,110 -> 528,111 -> 530,111 -> 530,108 -> 530,111 -> 532,111 -> 532,108 -> 532,111 -> 534,111 -> 534,107 -> 534,111 +549,140 -> 549,143 -> 541,143 -> 541,147 -> 555,147 -> 555,143 -> 554,143 -> 554,140 +509,89 -> 509,80 -> 509,89 -> 511,89 -> 511,84 -> 511,89 -> 513,89 -> 513,88 -> 513,89 -> 515,89 -> 515,84 -> 515,89 -> 517,89 -> 517,88 -> 517,89 +533,114 -> 533,118 -> 525,118 -> 525,124 -> 541,124 -> 541,118 -> 538,118 -> 538,114 +506,46 -> 506,43 -> 506,46 -> 508,46 -> 508,37 -> 508,46 -> 510,46 -> 510,40 -> 510,46 -> 512,46 -> 512,45 -> 512,46 -> 514,46 -> 514,38 -> 514,46 +508,30 -> 513,30 +506,46 -> 506,43 -> 506,46 -> 508,46 -> 508,37 -> 508,46 -> 510,46 -> 510,40 -> 510,46 -> 512,46 -> 512,45 -> 512,46 -> 514,46 -> 514,38 -> 514,46 +497,66 -> 502,66 +532,137 -> 532,130 -> 532,137 -> 534,137 -> 534,127 -> 534,137 -> 536,137 -> 536,135 -> 536,137 -> 538,137 -> 538,127 -> 538,137 -> 540,137 -> 540,132 -> 540,137 -> 542,137 -> 542,135 -> 542,137 -> 544,137 -> 544,127 -> 544,137 -> 546,137 -> 546,131 -> 546,137 -> 548,137 -> 548,134 -> 548,137 -> 550,137 -> 550,133 -> 550,137 +509,89 -> 509,80 -> 509,89 -> 511,89 -> 511,84 -> 511,89 -> 513,89 -> 513,88 -> 513,89 -> 515,89 -> 515,84 -> 515,89 -> 517,89 -> 517,88 -> 517,89 +524,111 -> 524,109 -> 524,111 -> 526,111 -> 526,103 -> 526,111 -> 528,111 -> 528,110 -> 528,111 -> 530,111 -> 530,108 -> 530,111 -> 532,111 -> 532,108 -> 532,111 -> 534,111 -> 534,107 -> 534,111 +532,137 -> 532,130 -> 532,137 -> 534,137 -> 534,127 -> 534,137 -> 536,137 -> 536,135 -> 536,137 -> 538,137 -> 538,127 -> 538,137 -> 540,137 -> 540,132 -> 540,137 -> 542,137 -> 542,135 -> 542,137 -> 544,137 -> 544,127 -> 544,137 -> 546,137 -> 546,131 -> 546,137 -> 548,137 -> 548,134 -> 548,137 -> 550,137 -> 550,133 -> 550,137 +524,111 -> 524,109 -> 524,111 -> 526,111 -> 526,103 -> 526,111 -> 528,111 -> 528,110 -> 528,111 -> 530,111 -> 530,108 -> 530,111 -> 532,111 -> 532,108 -> 532,111 -> 534,111 -> 534,107 -> 534,111 +531,58 -> 536,58 +519,33 -> 524,33 +555,150 -> 555,154 -> 550,154 -> 550,157 -> 561,157 -> 561,154 -> 557,154 -> 557,150 +555,150 -> 555,154 -> 550,154 -> 550,157 -> 561,157 -> 561,154 -> 557,154 -> 557,150 +501,63 -> 511,63 +491,70 -> 496,70 +506,46 -> 506,43 -> 506,46 -> 508,46 -> 508,37 -> 508,46 -> 510,46 -> 510,40 -> 510,46 -> 512,46 -> 512,45 -> 512,46 -> 514,46 -> 514,38 -> 514,46 +516,96 -> 520,96 +509,89 -> 509,80 -> 509,89 -> 511,89 -> 511,84 -> 511,89 -> 513,89 -> 513,88 -> 513,89 -> 515,89 -> 515,84 -> 515,89 -> 517,89 -> 517,88 -> 517,89 +505,70 -> 510,70 +532,137 -> 532,130 -> 532,137 -> 534,137 -> 534,127 -> 534,137 -> 536,137 -> 536,135 -> 536,137 -> 538,137 -> 538,127 -> 538,137 -> 540,137 -> 540,132 -> 540,137 -> 542,137 -> 542,135 -> 542,137 -> 544,137 -> 544,127 -> 544,137 -> 546,137 -> 546,131 -> 546,137 -> 548,137 -> 548,134 -> 548,137 -> 550,137 -> 550,133 -> 550,137 +524,111 -> 524,109 -> 524,111 -> 526,111 -> 526,103 -> 526,111 -> 528,111 -> 528,110 -> 528,111 -> 530,111 -> 530,108 -> 530,111 -> 532,111 -> 532,108 -> 532,111 -> 534,111 -> 534,107 -> 534,111 +501,68 -> 506,68 +506,46 -> 506,43 -> 506,46 -> 508,46 -> 508,37 -> 508,46 -> 510,46 -> 510,40 -> 510,46 -> 512,46 -> 512,45 -> 512,46 -> 514,46 -> 514,38 -> 514,46 +510,96 -> 514,96 +533,114 -> 533,118 -> 525,118 -> 525,124 -> 541,124 -> 541,118 -> 538,118 -> 538,114 +524,111 -> 524,109 -> 524,111 -> 526,111 -> 526,103 -> 526,111 -> 528,111 -> 528,110 -> 528,111 -> 530,111 -> 530,108 -> 530,111 -> 532,111 -> 532,108 -> 532,111 -> 534,111 -> 534,107 -> 534,111 +498,13 -> 498,16 -> 492,16 -> 492,19 -> 506,19 -> 506,16 -> 501,16 -> 501,13 +532,137 -> 532,130 -> 532,137 -> 534,137 -> 534,127 -> 534,137 -> 536,137 -> 536,135 -> 536,137 -> 538,137 -> 538,127 -> 538,137 -> 540,137 -> 540,132 -> 540,137 -> 542,137 -> 542,135 -> 542,137 -> 544,137 -> 544,127 -> 544,137 -> 546,137 -> 546,131 -> 546,137 -> 548,137 -> 548,134 -> 548,137 -> 550,137 -> 550,133 -> 550,137 +555,150 -> 555,154 -> 550,154 -> 550,157 -> 561,157 -> 561,154 -> 557,154 -> 557,150 +494,68 -> 499,68 +533,114 -> 533,118 -> 525,118 -> 525,124 -> 541,124 -> 541,118 -> 538,118 -> 538,114 +509,89 -> 509,80 -> 509,89 -> 511,89 -> 511,84 -> 511,89 -> 513,89 -> 513,88 -> 513,89 -> 515,89 -> 515,84 -> 515,89 -> 517,89 -> 517,88 -> 517,89 +506,46 -> 506,43 -> 506,46 -> 508,46 -> 508,37 -> 508,46 -> 510,46 -> 510,40 -> 510,46 -> 512,46 -> 512,45 -> 512,46 -> 514,46 -> 514,38 -> 514,46 +509,89 -> 509,80 -> 509,89 -> 511,89 -> 511,84 -> 511,89 -> 513,89 -> 513,88 -> 513,89 -> 515,89 -> 515,84 -> 515,89 -> 517,89 -> 517,88 -> 517,89