Skip to content

Instantly share code, notes, and snippets.

@hwayne
Last active April 9, 2024 21:37
Show Gist options
  • Save hwayne/44a6fc708198e5d0cbcd0b4de98131ed to your computer and use it in GitHub Desktop.
Save hwayne/44a6fc708198e5d0cbcd0b4de98131ed to your computer and use it in GitHub Desktop.
Sudoku DIMACS format

How the J Script Works

Going line by line:

b =: >: i. 9 9 9

This generates a 9 by 9 by 9 array with all values from 1 to 729. We can choose what each axis represents: I decided that each table is all of the boolean variables for one number, and the rows and columns map to sudoku rows and columns. For example:

   (<0 3 1) { b
29

29 represents the boolean variable "1 is in the 4th row and 2nd column". Remember that sudoku boards are 1-indexed, while programming languages are 0-indexed, so 0 3 1 is "really" 1 4 2.

What's nice about this representation is that every line in the b-cube corresponds to a set of constraints. Here's the first matrix of b:

   0 { b
 1  2  3  4  5  6  7  8  9
10 11 12 13 14 15 16 17 18
19 20 21 22 23 24 25 26 27
28 29 30 31 32 33 34 35 36
37 38 39 40 41 42 43 44 45
46 47 48 49 50 51 52 53 54
55 56 57 58 59 60 61 62 63
64 65 66 67 68 69 70 71 72
73 74 75 76 77 78 79 80 81

The first row of this table is all of the boolean variables corresponding to "where in row 1 is the number 1". If we take the cartesian product of the row, we get all pairs of numbers in that row— exactly what we need for our row constraints.

   cp 1 2 3
1 1
1 2
1 3

2 1
2 2
2 3

3 1
3 2
3 3

Two small problems: this generates both 1 2 and 2 1, which are redundant. Also, we generate 3 3, which would correspond to the clause (!3 | !3), which we don't want. So we need to deduplicate and also filter out rows where the same number appears both times:

ns =: (~:/"1) # ] NB. no self
dd =: ~.@:(_2 ]\ ,)@:(/:"1~) NB. dedup
uniq =: ns@:dd@:(cp"1)
   uniq 1 2 3
2 1
3 1
3 2

That's better. As for how all this works:

  • cp box-joins (;) the array with itself (;~), then generates a list of all possible ways of pulling one element from each list ({). Since it's the same list twice, this is the cartesian product of a list with itself. This gives us a list of boxes, which we unbox (>) to get a list of pairs.
  • dd is a bit of a mess right now. First it sorts each row individually (:/~), so that they're all in ascending order. Then it collapses a higher-dimensional matrix into a 2xN table of pairs. Then it uniques the list (~.).
  • ns is a standard filter of form (f # ]), as discussed here. ~:/"1 takes a list of twoples and inserts (/) a "not equals" (~:) between them, so gives 1 if the numbers are different and 0 if they're the same.

Because J's an array-based language, we can apply this operation to every row simultaneously. If I write

rowc =: uniq b

It gives me all 2916 uniqueness pair-constraints for all 81 rows in my array. To get the column and cell constraints, I can just reorient b across the axes. The |: dyad pulls an axis to the end: 0 |: b transforms b from number-row-column to row-column-number, and 1 |: b transforms it to number-column-row. This makes getting the extra constraints trivial.

colc =: uniq 1 |: b
celc =: uniq 0 |: b

That just leaves boxes. Each number array breaks down into a 3x3 grid of boxes, each themselves 3x3 in size. If we look at b as a single 9x9x9 cube, each constraint box is a 3x3x1 subarray. Fortunately J has a primitive, x u;.3 y, to apply a verb u to x-dimension subarrays of y.

box =: (,:~ 1 3 3)&(];.3)
boxc =: uniq 81 9 $, box b 
NB. f is necessary here
show J stuff The tiling gives us a 6-dimensional output, we need to massage it back into a list of rows for `uniq`. That's what the `81 9 $,` is for: convert the output into an 81x9 2d array.

That gives us all the uniqueness constraints: the intermediate arrays are the existence constraints, so that covers the entire sudoku schema. That just leaves clues and output formatting.

You could manually figure out what clues map to variables, but that's annoying as heck. Instead, we encode the puzzle as a 2D array, where 0 represents "empty square". I use the ".;._2 idiom, described here:

NB. from https://dingo.sbs.arizona.edu/~sandiway/sudoku/examples.html

puzzle =: 0&".;._2 (0 : 0) 
0 0 0 2 6 0 7 0 1
6 8 0 0 7 0 0 9 0
1 9 0 0 0 4 5 0 0
8 2 0 1 0 0 0 4 0
0 0 4 6 0 2 9 0 0
0 5 0 0 0 3 0 2 8
0 0 9 3 0 0 0 7 4
0 4 0 0 5 0 0 3 6
7 0 3 0 1 8 0 0 0
)

To extract the clue coordinates, I first convert the puzzle to a sparse array ($.), so values are in a row column | number format:

   2 3 $ 1 0 2 0 4
1 0 2
0 4 1
   $. 2 3 $ 1 0 2 0 4
0 01
0 22
1 14
1 21

4&$. gives us the axes while 5&$. gives us the values. We do a bit of data massage to get a set of coordinates in b. For example, since there's a 2 in the 1st row and 4th column, one of the rows of (4&$. ,.~ 5&$.) <: puzzle will be 1 0 3. We could directly index b, but it's simpler in this case to read it as a 3-digit nonary number: 1*9² + 0*9¹ + 3*9⁰ = 84. Then we increment because DIMACS is 1-based, and we get our final clue of 85.

clues =:  >: 9 9 9&#. (5&$. ,. 4&$.) <: $. puzzle

After that, it's just a matter of glomming all of our constraints together, appending a 0 to the end of each, converting them to strings, and writing them all to a file. Note this doesn't create the header file, which is unnecessary for some reason???

NB. START HERE
cp =: >@{@;~@, NB. Cartesian Product
ns =: (~:/"1) # ] NB. no self
dd =: ~.@:(_2 ]\ ,)@:(/:"1~) NB. dedup
f =: (81 9 $ ,) NB. flatten
antis =: ns@:dd@:(cp"1)
b =: >: i. 9 9 9
rows =: f b
cols =: f 1 |: b
cels =: f 0 |: b
NB. box =: (2 2 $ 3)&(<;.3)
box =: (,:~ 1 3 3)&(];.3)
boxs =: f box b NB. f is necessary here
'rowc colc celc boxc' =: antis&.> rows;cols;cels;boxs
uniqc =: - rowc , colc , celc , boxc
exist =: cols, cels, rows , boxs
NB. from https://dingo.sbs.arizona.edu/~sandiway/sudoku/examples.html
puzzle =: 0&".;._2 (0 : 0)
0 0 0 2 6 0 7 0 1
6 8 0 0 7 0 0 9 0
1 9 0 0 0 4 5 0 0
8 2 0 1 0 0 0 4 0
0 0 4 6 0 2 9 0 0
0 5 0 0 0 3 0 2 8
0 0 9 3 0 0 0 7 4
0 4 0 0 5 0 0 3 6
7 0 3 0 1 8 0 0 0
)
clues =: >: 9 9 9 #. (5&$. ,. 4&$.) <: $. puzzle
NB. This is just me fighting with the scripts
NB. BEGIN FITE {{
strbox =: {{('_-' charsub ":)&.> <"1 y ,. 0 }}
s1 =: strbox exist
s2 =: strbox uniqc
s3 =: strbox clues
(> s1 , s2 , s3) fwrites 'out.txt'
NB. }}
-1 -2 0
-1 -3 0
-1 -4 0
-1 -5 0
-1 -6 0
-1 -7 0
-1 -8 0
-1 -9 0
-2 -3 0
-2 -4 0
-2 -5 0
-2 -6 0
-2 -7 0
-2 -8 0
-2 -9 0
-3 -4 0
-3 -5 0
-3 -6 0
-3 -7 0
-3 -8 0
-3 -9 0
-4 -5 0
-4 -6 0
-4 -7 0
-4 -8 0
-4 -9 0
-5 -6 0
-5 -7 0
-5 -8 0
-5 -9 0
-6 -7 0
-6 -8 0
-6 -9 0
-7 -8 0
-7 -9 0
-8 -9 0
-10 -11 0
-10 -12 0
-10 -13 0
-10 -14 0
-10 -15 0
-10 -16 0
-10 -17 0
-10 -18 0
-11 -12 0
-11 -13 0
-11 -14 0
-11 -15 0
-11 -16 0
-11 -17 0
-11 -18 0
-12 -13 0
-12 -14 0
-12 -15 0
-12 -16 0
-12 -17 0
-12 -18 0
-13 -14 0
-13 -15 0
-13 -16 0
-13 -17 0
-13 -18 0
-14 -15 0
-14 -16 0
-14 -17 0
-14 -18 0
-15 -16 0
-15 -17 0
-15 -18 0
-16 -17 0
-16 -18 0
-17 -18 0
-19 -20 0
-19 -21 0
-19 -22 0
-19 -23 0
-19 -24 0
-19 -25 0
-19 -26 0
-19 -27 0
-20 -21 0
-20 -22 0
-20 -23 0
-20 -24 0
-20 -25 0
-20 -26 0
-20 -27 0
-21 -22 0
-21 -23 0
-21 -24 0
-21 -25 0
-21 -26 0
-21 -27 0
-22 -23 0
-22 -24 0
-22 -25 0
-22 -26 0
-22 -27 0
-23 -24 0
-23 -25 0
-23 -26 0
-23 -27 0
-24 -25 0
-24 -26 0
-24 -27 0
-25 -26 0
-25 -27 0
-26 -27 0
-28 -29 0
-28 -30 0
-28 -31 0
-28 -32 0
-28 -33 0
-28 -34 0
-28 -35 0
-28 -36 0
-29 -30 0
-29 -31 0
-29 -32 0
-29 -33 0
-29 -34 0
-29 -35 0
-29 -36 0
-30 -31 0
-30 -32 0
-30 -33 0
-30 -34 0
-30 -35 0
-30 -36 0
-31 -32 0
-31 -33 0
-31 -34 0
-31 -35 0
-31 -36 0
-32 -33 0
-32 -34 0
-32 -35 0
-32 -36 0
-33 -34 0
-33 -35 0
-33 -36 0
-34 -35 0
-34 -36 0
-35 -36 0
-37 -38 0
-37 -39 0
-37 -40 0
-37 -41 0
-37 -42 0
-37 -43 0
-37 -44 0
-37 -45 0
-38 -39 0
-38 -40 0
-38 -41 0
-38 -42 0
-38 -43 0
-38 -44 0
-38 -45 0
-39 -40 0
-39 -41 0
-39 -42 0
-39 -43 0
-39 -44 0
-39 -45 0
-40 -41 0
-40 -42 0
-40 -43 0
-40 -44 0
-40 -45 0
-41 -42 0
-41 -43 0
-41 -44 0
-41 -45 0
-42 -43 0
-42 -44 0
-42 -45 0
-43 -44 0
-43 -45 0
-44 -45 0
-46 -47 0
-46 -48 0
-46 -49 0
-46 -50 0
-46 -51 0
-46 -52 0
-46 -53 0
-46 -54 0
-47 -48 0
-47 -49 0
-47 -50 0
-47 -51 0
-47 -52 0
-47 -53 0
-47 -54 0
-48 -49 0
-48 -50 0
-48 -51 0
-48 -52 0
-48 -53 0
-48 -54 0
-49 -50 0
-49 -51 0
-49 -52 0
-49 -53 0
-49 -54 0
-50 -51 0
-50 -52 0
-50 -53 0
-50 -54 0
-51 -52 0
-51 -53 0
-51 -54 0
-52 -53 0
-52 -54 0
-53 -54 0
-55 -56 0
-55 -57 0
-55 -58 0
-55 -59 0
-55 -60 0
-55 -61 0
-55 -62 0
-55 -63 0
-56 -57 0
-56 -58 0
-56 -59 0
-56 -60 0
-56 -61 0
-56 -62 0
-56 -63 0
-57 -58 0
-57 -59 0
-57 -60 0
-57 -61 0
-57 -62 0
-57 -63 0
-58 -59 0
-58 -60 0
-58 -61 0
-58 -62 0
-58 -63 0
-59 -60 0
-59 -61 0
-59 -62 0
-59 -63 0
-60 -61 0
-60 -62 0
-60 -63 0
-61 -62 0
-61 -63 0
-62 -63 0
-64 -65 0
-64 -66 0
-64 -67 0
-64 -68 0
-64 -69 0
-64 -70 0
-64 -71 0
-64 -72 0
-65 -66 0
-65 -67 0
-65 -68 0
-65 -69 0
-65 -70 0
-65 -71 0
-65 -72 0
-66 -67 0
-66 -68 0
-66 -69 0
-66 -70 0
-66 -71 0
-66 -72 0
-67 -68 0
-67 -69 0
-67 -70 0
-67 -71 0
-67 -72 0
-68 -69 0
-68 -70 0
-68 -71 0
-68 -72 0
-69 -70 0
-69 -71 0
-69 -72 0
-70 -71 0
-70 -72 0
-71 -72 0
-73 -74 0
-73 -75 0
-73 -76 0
-73 -77 0
-73 -78 0
-73 -79 0
-73 -80 0
-73 -81 0
-74 -75 0
-74 -76 0
-74 -77 0
-74 -78 0
-74 -79 0
-74 -80 0
-74 -81 0
-75 -76 0
-75 -77 0
-75 -78 0
-75 -79 0
-75 -80 0
-75 -81 0
-76 -77 0
-76 -78 0
-76 -79 0
-76 -80 0
-76 -81 0
-77 -78 0
-77 -79 0
-77 -80 0
-77 -81 0
-78 -79 0
-78 -80 0
-78 -81 0
-79 -80 0
-79 -81 0
-80 -81 0
-82 -83 0
-82 -84 0
-82 -85 0
-82 -86 0
-82 -87 0
-82 -88 0
-82 -89 0
-82 -90 0
-83 -84 0
-83 -85 0
-83 -86 0
-83 -87 0
-83 -88 0
-83 -89 0
-83 -90 0
-84 -85 0
-84 -86 0
-84 -87 0
-84 -88 0
-84 -89 0
-84 -90 0
-85 -86 0
-85 -87 0
-85 -88 0
-85 -89 0
-85 -90 0
-86 -87 0
-86 -88 0
-86 -89 0
-86 -90 0
-87 -88 0
-87 -89 0
-87 -90 0
-88 -89 0
-88 -90 0
-89 -90 0
-91 -92 0
-91 -93 0
-91 -94 0
-91 -95 0
-91 -96 0
-91 -97 0
-91 -98 0
-91 -99 0
-92 -93 0
-92 -94 0
-92 -95 0
-92 -96 0
-92 -97 0
-92 -98 0
-92 -99 0
-93 -94 0
-93 -95 0
-93 -96 0
-93 -97 0
-93 -98 0
-93 -99 0
-94 -95 0
-94 -96 0
-94 -97 0
-94 -98 0
-94 -99 0
-95 -96 0
-95 -97 0
-95 -98 0
-95 -99 0
-96 -97 0
-96 -98 0
-96 -99 0
-97 -98 0
-97 -99 0
-98 -99 0
-100 -101 0
-100 -102 0
-100 -103 0
-100 -104 0
-100 -105 0
-100 -106 0
-100 -107 0
-100 -108 0
-101 -102 0
-101 -103 0
-101 -104 0
-101 -105 0
-101 -106 0
-101 -107 0
-101 -108 0
-102 -103 0
-102 -104 0
-102 -105 0
-102 -106 0
-102 -107 0
-102 -108 0
-103 -104 0
-103 -105 0
-103 -106 0
-103 -107 0
-103 -108 0
-104 -105 0
-104 -106 0
-104 -107 0
-104 -108 0
-105 -106 0
-105 -107 0
-105 -108 0
-106 -107 0
-106 -108 0
-107 -108 0
-109 -110 0
-109 -111 0
-109 -112 0
-109 -113 0
-109 -114 0
-109 -115 0
-109 -116 0
-109 -117 0
-110 -111 0
-110 -112 0
-110 -113 0
-110 -114 0
-110 -115 0
-110 -116 0
-110 -117 0
-111 -112 0
-111 -113 0
-111 -114 0
-111 -115 0
-111 -116 0
-111 -117 0
-112 -113 0
-112 -114 0
-112 -115 0
-112 -116 0
-112 -117 0
-113 -114 0
-113 -115 0
-113 -116 0
-113 -117 0
-114 -115 0
-114 -116 0
-114 -117 0
-115 -116 0
-115 -117 0
-116 -117 0
-118 -119 0
-118 -120 0
-118 -121 0
-118 -122 0
-118 -123 0
-118 -124 0
-118 -125 0
-118 -126 0
-119 -120 0
-119 -121 0
-119 -122 0
-119 -123 0
-119 -124 0
-119 -125 0
-119 -126 0
-120 -121 0
-120 -122 0
-120 -123 0
-120 -124 0
-120 -125 0
-120 -126 0
-121 -122 0
-121 -123 0
-121 -124 0
-121 -125 0
-121 -126 0
-122 -123 0
-122 -124 0
-122 -125 0
-122 -126 0
-123 -124 0
-123 -125 0
-123 -126 0
-124 -125 0
-124 -126 0
-125 -126 0
-127 -128 0
-127 -129 0
-127 -130 0
-127 -131 0
-127 -132 0
-127 -133 0
-127 -134 0
-127 -135 0
-128 -129 0
-128 -130 0
-128 -131 0
-128 -132 0
-128 -133 0
-128 -134 0
-128 -135 0
-129 -130 0
-129 -131 0
-129 -132 0
-129 -133 0
-129 -134 0
-129 -135 0
-130 -131 0
-130 -132 0
-130 -133 0
-130 -134 0
-130 -135 0
-131 -132 0
-131 -133 0
-131 -134 0
-131 -135 0
-132 -133 0
-132 -134 0
-132 -135 0
-133 -134 0
-133 -135 0
-134 -135 0
-136 -137 0
-136 -138 0
-136 -139 0
-136 -140 0
-136 -141 0
-136 -142 0
-136 -143 0
-136 -144 0
-137 -138 0
-137 -139 0
-137 -140 0
-137 -141 0
-137 -142 0
-137 -143 0
-137 -144 0
-138 -139 0
-138 -140 0
-138 -141 0
-138 -142 0
-138 -143 0
-138 -144 0
-139 -140 0
-139 -141 0
-139 -142 0
-139 -143 0
-139 -144 0
-140 -141 0
-140 -142 0
-140 -143 0
-140 -144 0
-141 -142 0
-141 -143 0
-141 -144 0
-142 -143 0
-142 -144 0
-143 -144 0
-145 -146 0
-145 -147 0
-145 -148 0
-145 -149 0
-145 -150 0
-145 -151 0
-145 -152 0
-145 -153 0
-146 -147 0
-146 -148 0
-146 -149 0
-146 -150 0
-146 -151 0
-146 -152 0
-146 -153 0
-147 -148 0
-147 -149 0
-147 -150 0
-147 -151 0
-147 -152 0
-147 -153 0
-148 -149 0
-148 -150 0
-148 -151 0
-148 -152 0
-148 -153 0
-149 -150 0
-149 -151 0
-149 -152 0
-149 -153 0
-150 -151 0
-150 -152 0
-150 -153 0
-151 -152 0
-151 -153 0
-152 -153 0
-154 -155 0
-154 -156 0
-154 -157 0
-154 -158 0
-154 -159 0
-154 -160 0
-154 -161 0
-154 -162 0
-155 -156 0
-155 -157 0
-155 -158 0
-155 -159 0
-155 -160 0
-155 -161 0
-155 -162 0
-156 -157 0
-156 -158 0
-156 -159 0
-156 -160 0
-156 -161 0
-156 -162 0
-157 -158 0
-157 -159 0
-157 -160 0
-157 -161 0
-157 -162 0
-158 -159 0
-158 -160 0
-158 -161 0
-158 -162 0
-159 -160 0
-159 -161 0
-159 -162 0
-160 -161 0
-160 -162 0
-161 -162 0
-163 -164 0
-163 -165 0
-163 -166 0
-163 -167 0
-163 -168 0
-163 -169 0
-163 -170 0
-163 -171 0
-164 -165 0
-164 -166 0
-164 -167 0
-164 -168 0
-164 -169 0
-164 -170 0
-164 -171 0
-165 -166 0
-165 -167 0
-165 -168 0
-165 -169 0
-165 -170 0
-165 -171 0
-166 -167 0
-166 -168 0
-166 -169 0
-166 -170 0
-166 -171 0
-167 -168 0
-167 -169 0
-167 -170 0
-167 -171 0
-168 -169 0
-168 -170 0
-168 -171 0
-169 -170 0
-169 -171 0
-170 -171 0
-172 -173 0
-172 -174 0
-172 -175 0
-172 -176 0
-172 -177 0
-172 -178 0
-172 -179 0
-172 -180 0
-173 -174 0
-173 -175 0
-173 -176 0
-173 -177 0
-173 -178 0
-173 -179 0
-173 -180 0
-174 -175 0
-174 -176 0
-174 -177 0
-174 -178 0
-174 -179 0
-174 -180 0
-175 -176 0
-175 -177 0
-175 -178 0
-175 -179 0
-175 -180 0
-176 -177 0
-176 -178 0
-176 -179 0
-176 -180 0
-177 -178 0
-177 -179 0
-177 -180 0
-178 -179 0
-178 -180 0
-179 -180 0
-181 -182 0
-181 -183 0
-181 -184 0
-181 -185 0
-181 -186 0
-181 -187 0
-181 -188 0
-181 -189 0
-182 -183 0
-182 -184 0
-182 -185 0
-182 -186 0
-182 -187 0
-182 -188 0
-182 -189 0
-183 -184 0
-183 -185 0
-183 -186 0
-183 -187 0
-183 -188 0
-183 -189 0
-184 -185 0
-184 -186 0
-184 -187 0
-184 -188 0
-184 -189 0
-185 -186 0
-185 -187 0
-185 -188 0
-185 -189 0
-186 -187 0
-186 -188 0
-186 -189 0
-187 -188 0
-187 -189 0
-188 -189 0
-190 -191 0
-190 -192 0
-190 -193 0
-190 -194 0
-190 -195 0
-190 -196 0
-190 -197 0
-190 -198 0
-191 -192 0
-191 -193 0
-191 -194 0
-191 -195 0
-191 -196 0
-191 -197 0
-191 -198 0
-192 -193 0
-192 -194 0
-192 -195 0
-192 -196 0
-192 -197 0
-192 -198 0
-193 -194 0
-193 -195 0
-193 -196 0
-193 -197 0
-193 -198 0
-194 -195 0
-194 -196 0
-194 -197 0
-194 -198 0
-195 -196 0
-195 -197 0
-195 -198 0
-196 -197 0
-196 -198 0
-197 -198 0
-199 -200 0
-199 -201 0
-199 -202 0
-199 -203 0
-199 -204 0
-199 -205 0
-199 -206 0
-199 -207 0
-200 -201 0
-200 -202 0
-200 -203 0
-200 -204 0
-200 -205 0
-200 -206 0
-200 -207 0
-201 -202 0
-201 -203 0
-201 -204 0
-201 -205 0
-201 -206 0
-201 -207 0
-202 -203 0
-202 -204 0
-202 -205 0
-202 -206 0
-202 -207 0
-203 -204 0
-203 -205 0
-203 -206 0
-203 -207 0
-204 -205 0
-204 -206 0
-204 -207 0
-205 -206 0
-205 -207 0
-206 -207 0
-208 -209 0
-208 -210 0
-208 -211 0
-208 -212 0
-208 -213 0
-208 -214 0
-208 -215 0
-208 -216 0
-209 -210 0
-209 -211 0
-209 -212 0
-209 -213 0
-209 -214 0
-209 -215 0
-209 -216 0
-210 -211 0
-210 -212 0
-210 -213 0
-210 -214 0
-210 -215 0
-210 -216 0
-211 -212 0
-211 -213 0
-211 -214 0
-211 -215 0
-211 -216 0
-212 -213 0
-212 -214 0
-212 -215 0
-212 -216 0
-213 -214 0
-213 -215 0
-213 -216 0
-214 -215 0
-214 -216 0
-215 -216 0
-217 -218 0
-217 -219 0
-217 -220 0
-217 -221 0
-217 -222 0
-217 -223 0
-217 -224 0
-217 -225 0
-218 -219 0
-218 -220 0
-218 -221 0
-218 -222 0
-218 -223 0
-218 -224 0
-218 -225 0
-219 -220 0
-219 -221 0
-219 -222 0
-219 -223 0
-219 -224 0
-219 -225 0
-220 -221 0
-220 -222 0
-220 -223 0
-220 -224 0
-220 -225 0
-221 -222 0
-221 -223 0
-221 -224 0
-221 -225 0
-222 -223 0
-222 -224 0
-222 -225 0
-223 -224 0
-223 -225 0
-224 -225 0
-226 -227 0
-226 -228 0
-226 -229 0
-226 -230 0
-226 -231 0
-226 -232 0
-226 -233 0
-226 -234 0
-227 -228 0
-227 -229 0
-227 -230 0
-227 -231 0
-227 -232 0
-227 -233 0
-227 -234 0
-228 -229 0
-228 -230 0
-228 -231 0
-228 -232 0
-228 -233 0
-228 -234 0
-229 -230 0
-229 -231 0
-229 -232 0
-229 -233 0
-229 -234 0
-230 -231 0
-230 -232 0
-230 -233 0
-230 -234 0
-231 -232 0
-231 -233 0
-231 -234 0
-232 -233 0
-232 -234 0
-233 -234 0
-235 -236 0
-235 -237 0
-235 -238 0
-235 -239 0
-235 -240 0
-235 -241 0
-235 -242 0
-235 -243 0
-236 -237 0
-236 -238 0
-236 -239 0
-236 -240 0
-236 -241 0
-236 -242 0
-236 -243 0
-237 -238 0
-237 -239 0
-237 -240 0
-237 -241 0
-237 -242 0
-237 -243 0
-238 -239 0
-238 -240 0
-238 -241 0
-238 -242 0
-238 -243 0
-239 -240 0
-239 -241 0
-239 -242 0
-239 -243 0
-240 -241 0
-240 -242 0
-240 -243 0
-241 -242 0
-241 -243 0
-242 -243 0
-244 -245 0
-244 -246 0
-244 -247 0
-244 -248 0
-244 -249 0
-244 -250 0
-244 -251 0
-244 -252 0
-245 -246 0
-245 -247 0
-245 -248 0
-245 -249 0
-245 -250 0
-245 -251 0
-245 -252 0
-246 -247 0
-246 -248 0
-246 -249 0
-246 -250 0
-246 -251 0
-246 -252 0
-247 -248 0
-247 -249 0
-247 -250 0
-247 -251 0
-247 -252 0
-248 -249 0
-248 -250 0
-248 -251 0
-248 -252 0
-249 -250 0
-249 -251 0
-249 -252 0
-250 -251 0
-250 -252 0
-251 -252 0
-253 -254 0
-253 -255 0
-253 -256 0
-253 -257 0
-253 -258 0
-253 -259 0
-253 -260 0
-253 -261 0
-254 -255 0
-254 -256 0
-254 -257 0
-254 -258 0
-254 -259 0
-254 -260 0
-254 -261 0
-255 -256 0
-255 -257 0
-255 -258 0
-255 -259 0
-255 -260 0
-255 -261 0
-256 -257 0
-256 -258 0
-256 -259 0
-256 -260 0
-256 -261 0
-257 -258 0
-257 -259 0
-257 -260 0
-257 -261 0
-258 -259 0
-258 -260 0
-258 -261 0
-259 -260 0
-259 -261 0
-260 -261 0
-262 -263 0
-262 -264 0
-262 -265 0
-262 -266 0
-262 -267 0
-262 -268 0
-262 -269 0
-262 -270 0
-263 -264 0
-263 -265 0
-263 -266 0
-263 -267 0
-263 -268 0
-263 -269 0
-263 -270 0
-264 -265 0
-264 -266 0
-264 -267 0
-264 -268 0
-264 -269 0
-264 -270 0
-265 -266 0
-265 -267 0
-265 -268 0
-265 -269 0
-265 -270 0
-266 -267 0
-266 -268 0
-266 -269 0
-266 -270 0
-267 -268 0
-267 -269 0
-267 -270 0
-268 -269 0
-268 -270 0
-269 -270 0
-271 -272 0
-271 -273 0
-271 -274 0
-271 -275 0
-271 -276 0
-271 -277 0
-271 -278 0
-271 -279 0
-272 -273 0
-272 -274 0
-272 -275 0
-272 -276 0
-272 -277 0
-272 -278 0
-272 -279 0
-273 -274 0
-273 -275 0
-273 -276 0
-273 -277 0
-273 -278 0
-273 -279 0
-274 -275 0
-274 -276 0
-274 -277 0
-274 -278 0
-274 -279 0
-275 -276 0
-275 -277 0
-275 -278 0
-275 -279 0
-276 -277 0
-276 -278 0
-276 -279 0
-277 -278 0
-277 -279 0
-278 -279 0
-280 -281 0
-280 -282 0
-280 -283 0
-280 -284 0
-280 -285 0
-280 -286 0
-280 -287 0
-280 -288 0
-281 -282 0
-281 -283 0
-281 -284 0
-281 -285 0
-281 -286 0
-281 -287 0
-281 -288 0
-282 -283 0
-282 -284 0
-282 -285 0
-282 -286 0
-282 -287 0
-282 -288 0
-283 -284 0
-283 -285 0
-283 -286 0
-283 -287 0
-283 -288 0
-284 -285 0
-284 -286 0
-284 -287 0
-284 -288 0
-285 -286 0
-285 -287 0
-285 -288 0
-286 -287 0
-286 -288 0
-287 -288 0
-289 -290 0
-289 -291 0
-289 -292 0
-289 -293 0
-289 -294 0
-289 -295 0
-289 -296 0
-289 -297 0
-290 -291 0
-290 -292 0
-290 -293 0
-290 -294 0
-290 -295 0
-290 -296 0
-290 -297 0
-291 -292 0
-291 -293 0
-291 -294 0
-291 -295 0
-291 -296 0
-291 -297 0
-292 -293 0
-292 -294 0
-292 -295 0
-292 -296 0
-292 -297 0
-293 -294 0
-293 -295 0
-293 -296 0
-293 -297 0
-294 -295 0
-294 -296 0
-294 -297 0
-295 -296 0
-295 -297 0
-296 -297 0
-298 -299 0
-298 -300 0
-298 -301 0
-298 -302 0
-298 -303 0
-298 -304 0
-298 -305 0
-298 -306 0
-299 -300 0
-299 -301 0
-299 -302 0
-299 -303 0
-299 -304 0
-299 -305 0
-299 -306 0
-300 -301 0
-300 -302 0
-300 -303 0
-300 -304 0
-300 -305 0
-300 -306 0
-301 -302 0
-301 -303 0
-301 -304 0
-301 -305 0
-301 -306 0
-302 -303 0
-302 -304 0
-302 -305 0
-302 -306 0
-303 -304 0
-303 -305 0
-303 -306 0
-304 -305 0
-304 -306 0
-305 -306 0
-307 -308 0
-307 -309 0
-307 -310 0
-307 -311 0
-307 -312 0
-307 -313 0
-307 -314 0
-307 -315 0
-308 -309 0
-308 -310 0
-308 -311 0
-308 -312 0
-308 -313 0
-308 -314 0
-308 -315 0
-309 -310 0
-309 -311 0
-309 -312 0
-309 -313 0
-309 -314 0
-309 -315 0
-310 -311 0
-310 -312 0
-310 -313 0
-310 -314 0
-310 -315 0
-311 -312 0
-311 -313 0
-311 -314 0
-311 -315 0
-312 -313 0
-312 -314 0
-312 -315 0
-313 -314 0
-313 -315 0
-314 -315 0
-316 -317 0
-316 -318 0
-316 -319 0
-316 -320 0
-316 -321 0
-316 -322 0
-316 -323 0
-316 -324 0
-317 -318 0
-317 -319 0
-317 -320 0
-317 -321 0
-317 -322 0
-317 -323 0
-317 -324 0
-318 -319 0
-318 -320 0
-318 -321 0
-318 -322 0
-318 -323 0
-318 -324 0
-319 -320 0
-319 -321 0
-319 -322 0
-319 -323 0
-319 -324 0
-320 -321 0
-320 -322 0
-320 -323 0
-320 -324 0
-321 -322 0
-321 -323 0
-321 -324 0
-322 -323 0
-322 -324 0
-323 -324 0
-325 -326 0
-325 -327 0
-325 -328 0
-325 -329 0
-325 -330 0
-325 -331 0
-325 -332 0
-325 -333 0
-326 -327 0
-326 -328 0
-326 -329 0
-326 -330 0
-326 -331 0
-326 -332 0
-326 -333 0
-327 -328 0
-327 -329 0
-327 -330 0
-327 -331 0
-327 -332 0
-327 -333 0
-328 -329 0
-328 -330 0
-328 -331 0
-328 -332 0
-328 -333 0
-329 -330 0
-329 -331 0
-329 -332 0
-329 -333 0
-330 -331 0
-330 -332 0
-330 -333 0
-331 -332 0
-331 -333 0
-332 -333 0
-334 -335 0
-334 -336 0
-334 -337 0
-334 -338 0
-334 -339 0
-334 -340 0
-334 -341 0
-334 -342 0
-335 -336 0
-335 -337 0
-335 -338 0
-335 -339 0
-335 -340 0
-335 -341 0
-335 -342 0
-336 -337 0
-336 -338 0
-336 -339 0
-336 -340 0
-336 -341 0
-336 -342 0
-337 -338 0
-337 -339 0
-337 -340 0
-337 -341 0
-337 -342 0
-338 -339 0
-338 -340 0
-338 -341 0
-338 -342 0
-339 -340 0
-339 -341 0
-339 -342 0
-340 -341 0
-340 -342 0
-341 -342 0
-343 -344 0
-343 -345 0
-343 -346 0
-343 -347 0
-343 -348 0
-343 -349 0
-343 -350 0
-343 -351 0
-344 -345 0
-344 -346 0
-344 -347 0
-344 -348 0
-344 -349 0
-344 -350 0
-344 -351 0
-345 -346 0
-345 -347 0
-345 -348 0
-345 -349 0
-345 -350 0
-345 -351 0
-346 -347 0
-346 -348 0
-346 -349 0
-346 -350 0
-346 -351 0
-347 -348 0
-347 -349 0
-347 -350 0
-347 -351 0
-348 -349 0
-348 -350 0
-348 -351 0
-349 -350 0
-349 -351 0
-350 -351 0
-352 -353 0
-352 -354 0
-352 -355 0
-352 -356 0
-352 -357 0
-352 -358 0
-352 -359 0
-352 -360 0
-353 -354 0
-353 -355 0
-353 -356 0
-353 -357 0
-353 -358 0
-353 -359 0
-353 -360 0
-354 -355 0
-354 -356 0
-354 -357 0
-354 -358 0
-354 -359 0
-354 -360 0
-355 -356 0
-355 -357 0
-355 -358 0
-355 -359 0
-355 -360 0
-356 -357 0
-356 -358 0
-356 -359 0
-356 -360 0
-357 -358 0
-357 -359 0
-357 -360 0
-358 -359 0
-358 -360 0
-359 -360 0
-361 -362 0
-361 -363 0
-361 -364 0
-361 -365 0
-361 -366 0
-361 -367 0
-361 -368 0
-361 -369 0
-362 -363 0
-362 -364 0
-362 -365 0
-362 -366 0
-362 -367 0
-362 -368 0
-362 -369 0
-363 -364 0
-363 -365 0
-363 -366 0
-363 -367 0
-363 -368 0
-363 -369 0
-364 -365 0
-364 -366 0
-364 -367 0
-364 -368 0
-364 -369 0
-365 -366 0
-365 -367 0
-365 -368 0
-365 -369 0
-366 -367 0
-366 -368 0
-366 -369 0
-367 -368 0
-367 -369 0
-368 -369 0
-370 -371 0
-370 -372 0
-370 -373 0
-370 -374 0
-370 -375 0
-370 -376 0
-370 -377 0
-370 -378 0
-371 -372 0
-371 -373 0
-371 -374 0
-371 -375 0
-371 -376 0
-371 -377 0
-371 -378 0
-372 -373 0
-372 -374 0
-372 -375 0
-372 -376 0
-372 -377 0
-372 -378 0
-373 -374 0
-373 -375 0
-373 -376 0
-373 -377 0
-373 -378 0
-374 -375 0
-374 -376 0
-374 -377 0
-374 -378 0
-375 -376 0
-375 -377 0
-375 -378 0
-376 -377 0
-376 -378 0
-377 -378 0
-379 -380 0
-379 -381 0
-379 -382 0
-379 -383 0
-379 -384 0
-379 -385 0
-379 -386 0
-379 -387 0
-380 -381 0
-380 -382 0
-380 -383 0
-380 -384 0
-380 -385 0
-380 -386 0
-380 -387 0
-381 -382 0
-381 -383 0
-381 -384 0
-381 -385 0
-381 -386 0
-381 -387 0
-382 -383 0
-382 -384 0
-382 -385 0
-382 -386 0
-382 -387 0
-383 -384 0
-383 -385 0
-383 -386 0
-383 -387 0
-384 -385 0
-384 -386 0
-384 -387 0
-385 -386 0
-385 -387 0
-386 -387 0
-388 -389 0
-388 -390 0
-388 -391 0
-388 -392 0
-388 -393 0
-388 -394 0
-388 -395 0
-388 -396 0
-389 -390 0
-389 -391 0
-389 -392 0
-389 -393 0
-389 -394 0
-389 -395 0
-389 -396 0
-390 -391 0
-390 -392 0
-390 -393 0
-390 -394 0
-390 -395 0
-390 -396 0
-391 -392 0
-391 -393 0
-391 -394 0
-391 -395 0
-391 -396 0
-392 -393 0
-392 -394 0
-392 -395 0
-392 -396 0
-393 -394 0
-393 -395 0
-393 -396 0
-394 -395 0
-394 -396 0
-395 -396 0
-397 -398 0
-397 -399 0
-397 -400 0
-397 -401 0
-397 -402 0
-397 -403 0
-397 -404 0
-397 -405 0
-398 -399 0
-398 -400 0
-398 -401 0
-398 -402 0
-398 -403 0
-398 -404 0
-398 -405 0
-399 -400 0
-399 -401 0
-399 -402 0
-399 -403 0
-399 -404 0
-399 -405 0
-400 -401 0
-400 -402 0
-400 -403 0
-400 -404 0
-400 -405 0
-401 -402 0
-401 -403 0
-401 -404 0
-401 -405 0
-402 -403 0
-402 -404 0
-402 -405 0
-403 -404 0
-403 -405 0
-404 -405 0
-406 -407 0
-406 -408 0
-406 -409 0
-406 -410 0
-406 -411 0
-406 -412 0
-406 -413 0
-406 -414 0
-407 -408 0
-407 -409 0
-407 -410 0
-407 -411 0
-407 -412 0
-407 -413 0
-407 -414 0
-408 -409 0
-408 -410 0
-408 -411 0
-408 -412 0
-408 -413 0
-408 -414 0
-409 -410 0
-409 -411 0
-409 -412 0
-409 -413 0
-409 -414 0
-410 -411 0
-410 -412 0
-410 -413 0
-410 -414 0
-411 -412 0
-411 -413 0
-411 -414 0
-412 -413 0
-412 -414 0
-413 -414 0
-415 -416 0
-415 -417 0
-415 -418 0
-415 -419 0
-415 -420 0
-415 -421 0
-415 -422 0
-415 -423 0
-416 -417 0
-416 -418 0
-416 -419 0
-416 -420 0
-416 -421 0
-416 -422 0
-416 -423 0
-417 -418 0
-417 -419 0
-417 -420 0
-417 -421 0
-417 -422 0
-417 -423 0
-418 -419 0
-418 -420 0
-418 -421 0
-418 -422 0
-418 -423 0
-419 -420 0
-419 -421 0
-419 -422 0
-419 -423 0
-420 -421 0
-420 -422 0
-420 -423 0
-421 -422 0
-421 -423 0
-422 -423 0
-424 -425 0
-424 -426 0
-424 -427 0
-424 -428 0
-424 -429 0
-424 -430 0
-424 -431 0
-424 -432 0
-425 -426 0
-425 -427 0
-425 -428 0
-425 -429 0
-425 -430 0
-425 -431 0
-425 -432 0
-426 -427 0
-426 -428 0
-426 -429 0
-426 -430 0
-426 -431 0
-426 -432 0
-427 -428 0
-427 -429 0
-427 -430 0
-427 -431 0
-427 -432 0
-428 -429 0
-428 -430 0
-428 -431 0
-428 -432 0
-429 -430 0
-429 -431 0
-429 -432 0
-430 -431 0
-430 -432 0
-431 -432 0
-433 -434 0
-433 -435 0
-433 -436 0
-433 -437 0
-433 -438 0
-433 -439 0
-433 -440 0
-433 -441 0
-434 -435 0
-434 -436 0
-434 -437 0
-434 -438 0
-434 -439 0
-434 -440 0
-434 -441 0
-435 -436 0
-435 -437 0
-435 -438 0
-435 -439 0
-435 -440 0
-435 -441 0
-436 -437 0
-436 -438 0
-436 -439 0
-436 -440 0
-436 -441 0
-437 -438 0
-437 -439 0
-437 -440 0
-437 -441 0
-438 -439 0
-438 -440 0
-438 -441 0
-439 -440 0
-439 -441 0
-440 -441 0
-442 -443 0
-442 -444 0
-442 -445 0
-442 -446 0
-442 -447 0
-442 -448 0
-442 -449 0
-442 -450 0
-443 -444 0
-443 -445 0
-443 -446 0
-443 -447 0
-443 -448 0
-443 -449 0
-443 -450 0
-444 -445 0
-444 -446 0
-444 -447 0
-444 -448 0
-444 -449 0
-444 -450 0
-445 -446 0
-445 -447 0
-445 -448 0
-445 -449 0
-445 -450 0
-446 -447 0
-446 -448 0
-446 -449 0
-446 -450 0
-447 -448 0
-447 -449 0
-447 -450 0
-448 -449 0
-448 -450 0
-449 -450 0
-451 -452 0
-451 -453 0
-451 -454 0
-451 -455 0
-451 -456 0
-451 -457 0
-451 -458 0
-451 -459 0
-452 -453 0
-452 -454 0
-452 -455 0
-452 -456 0
-452 -457 0
-452 -458 0
-452 -459 0
-453 -454 0
-453 -455 0
-453 -456 0
-453 -457 0
-453 -458 0
-453 -459 0
-454 -455 0
-454 -456 0
-454 -457 0
-454 -458 0
-454 -459 0
-455 -456 0
-455 -457 0
-455 -458 0
-455 -459 0
-456 -457 0
-456 -458 0
-456 -459 0
-457 -458 0
-457 -459 0
-458 -459 0
-460 -461 0
-460 -462 0
-460 -463 0
-460 -464 0
-460 -465 0
-460 -466 0
-460 -467 0
-460 -468 0
-461 -462 0
-461 -463 0
-461 -464 0
-461 -465 0
-461 -466 0
-461 -467 0
-461 -468 0
-462 -463 0
-462 -464 0
-462 -465 0
-462 -466 0
-462 -467 0
-462 -468 0
-463 -464 0
-463 -465 0
-463 -466 0
-463 -467 0
-463 -468 0
-464 -465 0
-464 -466 0
-464 -467 0
-464 -468 0
-465 -466 0
-465 -467 0
-465 -468 0
-466 -467 0
-466 -468 0
-467 -468 0
-469 -470 0
-469 -471 0
-469 -472 0
-469 -473 0
-469 -474 0
-469 -475 0
-469 -476 0
-469 -477 0
-470 -471 0
-470 -472 0
-470 -473 0
-470 -474 0
-470 -475 0
-470 -476 0
-470 -477 0
-471 -472 0
-471 -473 0
-471 -474 0
-471 -475 0
-471 -476 0
-471 -477 0
-472 -473 0
-472 -474 0
-472 -475 0
-472 -476 0
-472 -477 0
-473 -474 0
-473 -475 0
-473 -476 0
-473 -477 0
-474 -475 0
-474 -476 0
-474 -477 0
-475 -476 0
-475 -477 0
-476 -477 0
-478 -479 0
-478 -480 0
-478 -481 0
-478 -482 0
-478 -483 0
-478 -484 0
-478 -485 0
-478 -486 0
-479 -480 0
-479 -481 0
-479 -482 0
-479 -483 0
-479 -484 0
-479 -485 0
-479 -486 0
-480 -481 0
-480 -482 0
-480 -483 0
-480 -484 0
-480 -485 0
-480 -486 0
-481 -482 0
-481 -483 0
-481 -484 0
-481 -485 0
-481 -486 0
-482 -483 0
-482 -484 0
-482 -485 0
-482 -486 0
-483 -484 0
-483 -485 0
-483 -486 0
-484 -485 0
-484 -486 0
-485 -486 0
-487 -488 0
-487 -489 0
-487 -490 0
-487 -491 0
-487 -492 0
-487 -493 0
-487 -494 0
-487 -495 0
-488 -489 0
-488 -490 0
-488 -491 0
-488 -492 0
-488 -493 0
-488 -494 0
-488 -495 0
-489 -490 0
-489 -491 0
-489 -492 0
-489 -493 0
-489 -494 0
-489 -495 0
-490 -491 0
-490 -492 0
-490 -493 0
-490 -494 0
-490 -495 0
-491 -492 0
-491 -493 0
-491 -494 0
-491 -495 0
-492 -493 0
-492 -494 0
-492 -495 0
-493 -494 0
-493 -495 0
-494 -495 0
-496 -497 0
-496 -498 0
-496 -499 0
-496 -500 0
-496 -501 0
-496 -502 0
-496 -503 0
-496 -504 0
-497 -498 0
-497 -499 0
-497 -500 0
-497 -501 0
-497 -502 0
-497 -503 0
-497 -504 0
-498 -499 0
-498 -500 0
-498 -501 0
-498 -502 0
-498 -503 0
-498 -504 0
-499 -500 0
-499 -501 0
-499 -502 0
-499 -503 0
-499 -504 0
-500 -501 0
-500 -502 0
-500 -503 0
-500 -504 0
-501 -502 0
-501 -503 0
-501 -504 0
-502 -503 0
-502 -504 0
-503 -504 0
-505 -506 0
-505 -507 0
-505 -508 0
-505 -509 0
-505 -510 0
-505 -511 0
-505 -512 0
-505 -513 0
-506 -507 0
-506 -508 0
-506 -509 0
-506 -510 0
-506 -511 0
-506 -512 0
-506 -513 0
-507 -508 0
-507 -509 0
-507 -510 0
-507 -511 0
-507 -512 0
-507 -513 0
-508 -509 0
-508 -510 0
-508 -511 0
-508 -512 0
-508 -513 0
-509 -510 0
-509 -511 0
-509 -512 0
-509 -513 0
-510 -511 0
-510 -512 0
-510 -513 0
-511 -512 0
-511 -513 0
-512 -513 0
-514 -515 0
-514 -516 0
-514 -517 0
-514 -518 0
-514 -519 0
-514 -520 0
-514 -521 0
-514 -522 0
-515 -516 0
-515 -517 0
-515 -518 0
-515 -519 0
-515 -520 0
-515 -521 0
-515 -522 0
-516 -517 0
-516 -518 0
-516 -519 0
-516 -520 0
-516 -521 0
-516 -522 0
-517 -518 0
-517 -519 0
-517 -520 0
-517 -521 0
-517 -522 0
-518 -519 0
-518 -520 0
-518 -521 0
-518 -522 0
-519 -520 0
-519 -521 0
-519 -522 0
-520 -521 0
-520 -522 0
-521 -522 0
-523 -524 0
-523 -525 0
-523 -526 0
-523 -527 0
-523 -528 0
-523 -529 0
-523 -530 0
-523 -531 0
-524 -525 0
-524 -526 0
-524 -527 0
-524 -528 0
-524 -529 0
-524 -530 0
-524 -531 0
-525 -526 0
-525 -527 0
-525 -528 0
-525 -529 0
-525 -530 0
-525 -531 0
-526 -527 0
-526 -528 0
-526 -529 0
-526 -530 0
-526 -531 0
-527 -528 0
-527 -529 0
-527 -530 0
-527 -531 0
-528 -529 0
-528 -530 0
-528 -531 0
-529 -530 0
-529 -531 0
-530 -531 0
-532 -533 0
-532 -534 0
-532 -535 0
-532 -536 0
-532 -537 0
-532 -538 0
-532 -539 0
-532 -540 0
-533 -534 0
-533 -535 0
-533 -536 0
-533 -537 0
-533 -538 0
-533 -539 0
-533 -540 0
-534 -535 0
-534 -536 0
-534 -537 0
-534 -538 0
-534 -539 0
-534 -540 0
-535 -536 0
-535 -537 0
-535 -538 0
-535 -539 0
-535 -540 0
-536 -537 0
-536 -538 0
-536 -539 0
-536 -540 0
-537 -538 0
-537 -539 0
-537 -540 0
-538 -539 0
-538 -540 0
-539 -540 0
-541 -542 0
-541 -543 0
-541 -544 0
-541 -545 0
-541 -546 0
-541 -547 0
-541 -548 0
-541 -549 0
-542 -543 0
-542 -544 0
-542 -545 0
-542 -546 0
-542 -547 0
-542 -548 0
-542 -549 0
-543 -544 0
-543 -545 0
-543 -546 0
-543 -547 0
-543 -548 0
-543 -549 0
-544 -545 0
-544 -546 0
-544 -547 0
-544 -548 0
-544 -549 0
-545 -546 0
-545 -547 0
-545 -548 0
-545 -549 0
-546 -547 0
-546 -548 0
-546 -549 0
-547 -548 0
-547 -549 0
-548 -549 0
-550 -551 0
-550 -552 0
-550 -553 0
-550 -554 0
-550 -555 0
-550 -556 0
-550 -557 0
-550 -558 0
-551 -552 0
-551 -553 0
-551 -554 0
-551 -555 0
-551 -556 0
-551 -557 0
-551 -558 0
-552 -553 0
-552 -554 0
-552 -555 0
-552 -556 0
-552 -557 0
-552 -558 0
-553 -554 0
-553 -555 0
-553 -556 0
-553 -557 0
-553 -558 0
-554 -555 0
-554 -556 0
-554 -557 0
-554 -558 0
-555 -556 0
-555 -557 0
-555 -558 0
-556 -557 0
-556 -558 0
-557 -558 0
-559 -560 0
-559 -561 0
-559 -562 0
-559 -563 0
-559 -564 0
-559 -565 0
-559 -566 0
-559 -567 0
-560 -561 0
-560 -562 0
-560 -563 0
-560 -564 0
-560 -565 0
-560 -566 0
-560 -567 0
-561 -562 0
-561 -563 0
-561 -564 0
-561 -565 0
-561 -566 0
-561 -567 0
-562 -563 0
-562 -564 0
-562 -565 0
-562 -566 0
-562 -567 0
-563 -564 0
-563 -565 0
-563 -566 0
-563 -567 0
-564 -565 0
-564 -566 0
-564 -567 0
-565 -566 0
-565 -567 0
-566 -567 0
-568 -569 0
-568 -570 0
-568 -571 0
-568 -572 0
-568 -573 0
-568 -574 0
-568 -575 0
-568 -576 0
-569 -570 0
-569 -571 0
-569 -572 0
-569 -573 0
-569 -574 0
-569 -575 0
-569 -576 0
-570 -571 0
-570 -572 0
-570 -573 0
-570 -574 0
-570 -575 0
-570 -576 0
-571 -572 0
-571 -573 0
-571 -574 0
-571 -575 0
-571 -576 0
-572 -573 0
-572 -574 0
-572 -575 0
-572 -576 0
-573 -574 0
-573 -575 0
-573 -576 0
-574 -575 0
-574 -576 0
-575 -576 0
-577 -578 0
-577 -579 0
-577 -580 0
-577 -581 0
-577 -582 0
-577 -583 0
-577 -584 0
-577 -585 0
-578 -579 0
-578 -580 0
-578 -581 0
-578 -582 0
-578 -583 0
-578 -584 0
-578 -585 0
-579 -580 0
-579 -581 0
-579 -582 0
-579 -583 0
-579 -584 0
-579 -585 0
-580 -581 0
-580 -582 0
-580 -583 0
-580 -584 0
-580 -585 0
-581 -582 0
-581 -583 0
-581 -584 0
-581 -585 0
-582 -583 0
-582 -584 0
-582 -585 0
-583 -584 0
-583 -585 0
-584 -585 0
-586 -587 0
-586 -588 0
-586 -589 0
-586 -590 0
-586 -591 0
-586 -592 0
-586 -593 0
-586 -594 0
-587 -588 0
-587 -589 0
-587 -590 0
-587 -591 0
-587 -592 0
-587 -593 0
-587 -594 0
-588 -589 0
-588 -590 0
-588 -591 0
-588 -592 0
-588 -593 0
-588 -594 0
-589 -590 0
-589 -591 0
-589 -592 0
-589 -593 0
-589 -594 0
-590 -591 0
-590 -592 0
-590 -593 0
-590 -594 0
-591 -592 0
-591 -593 0
-591 -594 0
-592 -593 0
-592 -594 0
-593 -594 0
-595 -596 0
-595 -597 0
-595 -598 0
-595 -599 0
-595 -600 0
-595 -601 0
-595 -602 0
-595 -603 0
-596 -597 0
-596 -598 0
-596 -599 0
-596 -600 0
-596 -601 0
-596 -602 0
-596 -603 0
-597 -598 0
-597 -599 0
-597 -600 0
-597 -601 0
-597 -602 0
-597 -603 0
-598 -599 0
-598 -600 0
-598 -601 0
-598 -602 0
-598 -603 0
-599 -600 0
-599 -601 0
-599 -602 0
-599 -603 0
-600 -601 0
-600 -602 0
-600 -603 0
-601 -602 0
-601 -603 0
-602 -603 0
-604 -605 0
-604 -606 0
-604 -607 0
-604 -608 0
-604 -609 0
-604 -610 0
-604 -611 0
-604 -612 0
-605 -606 0
-605 -607 0
-605 -608 0
-605 -609 0
-605 -610 0
-605 -611 0
-605 -612 0
-606 -607 0
-606 -608 0
-606 -609 0
-606 -610 0
-606 -611 0
-606 -612 0
-607 -608 0
-607 -609 0
-607 -610 0
-607 -611 0
-607 -612 0
-608 -609 0
-608 -610 0
-608 -611 0
-608 -612 0
-609 -610 0
-609 -611 0
-609 -612 0
-610 -611 0
-610 -612 0
-611 -612 0
-613 -614 0
-613 -615 0
-613 -616 0
-613 -617 0
-613 -618 0
-613 -619 0
-613 -620 0
-613 -621 0
-614 -615 0
-614 -616 0
-614 -617 0
-614 -618 0
-614 -619 0
-614 -620 0
-614 -621 0
-615 -616 0
-615 -617 0
-615 -618 0
-615 -619 0
-615 -620 0
-615 -621 0
-616 -617 0
-616 -618 0
-616 -619 0
-616 -620 0
-616 -621 0
-617 -618 0
-617 -619 0
-617 -620 0
-617 -621 0
-618 -619 0
-618 -620 0
-618 -621 0
-619 -620 0
-619 -621 0
-620 -621 0
-622 -623 0
-622 -624 0
-622 -625 0
-622 -626 0
-622 -627 0
-622 -628 0
-622 -629 0
-622 -630 0
-623 -624 0
-623 -625 0
-623 -626 0
-623 -627 0
-623 -628 0
-623 -629 0
-623 -630 0
-624 -625 0
-624 -626 0
-624 -627 0
-624 -628 0
-624 -629 0
-624 -630 0
-625 -626 0
-625 -627 0
-625 -628 0
-625 -629 0
-625 -630 0
-626 -627 0
-626 -628 0
-626 -629 0
-626 -630 0
-627 -628 0
-627 -629 0
-627 -630 0
-628 -629 0
-628 -630 0
-629 -630 0
-631 -632 0
-631 -633 0
-631 -634 0
-631 -635 0
-631 -636 0
-631 -637 0
-631 -638 0
-631 -639 0
-632 -633 0
-632 -634 0
-632 -635 0
-632 -636 0
-632 -637 0
-632 -638 0
-632 -639 0
-633 -634 0
-633 -635 0
-633 -636 0
-633 -637 0
-633 -638 0
-633 -639 0
-634 -635 0
-634 -636 0
-634 -637 0
-634 -638 0
-634 -639 0
-635 -636 0
-635 -637 0
-635 -638 0
-635 -639 0
-636 -637 0
-636 -638 0
-636 -639 0
-637 -638 0
-637 -639 0
-638 -639 0
-640 -641 0
-640 -642 0
-640 -643 0
-640 -644 0
-640 -645 0
-640 -646 0
-640 -647 0
-640 -648 0
-641 -642 0
-641 -643 0
-641 -644 0
-641 -645 0
-641 -646 0
-641 -647 0
-641 -648 0
-642 -643 0
-642 -644 0
-642 -645 0
-642 -646 0
-642 -647 0
-642 -648 0
-643 -644 0
-643 -645 0
-643 -646 0
-643 -647 0
-643 -648 0
-644 -645 0
-644 -646 0
-644 -647 0
-644 -648 0
-645 -646 0
-645 -647 0
-645 -648 0
-646 -647 0
-646 -648 0
-647 -648 0
-649 -650 0
-649 -651 0
-649 -652 0
-649 -653 0
-649 -654 0
-649 -655 0
-649 -656 0
-649 -657 0
-650 -651 0
-650 -652 0
-650 -653 0
-650 -654 0
-650 -655 0
-650 -656 0
-650 -657 0
-651 -652 0
-651 -653 0
-651 -654 0
-651 -655 0
-651 -656 0
-651 -657 0
-652 -653 0
-652 -654 0
-652 -655 0
-652 -656 0
-652 -657 0
-653 -654 0
-653 -655 0
-653 -656 0
-653 -657 0
-654 -655 0
-654 -656 0
-654 -657 0
-655 -656 0
-655 -657 0
-656 -657 0
-658 -659 0
-658 -660 0
-658 -661 0
-658 -662 0
-658 -663 0
-658 -664 0
-658 -665 0
-658 -666 0
-659 -660 0
-659 -661 0
-659 -662 0
-659 -663 0
-659 -664 0
-659 -665 0
-659 -666 0
-660 -661 0
-660 -662 0
-660 -663 0
-660 -664 0
-660 -665 0
-660 -666 0
-661 -662 0
-661 -663 0
-661 -664 0
-661 -665 0
-661 -666 0
-662 -663 0
-662 -664 0
-662 -665 0
-662 -666 0
-663 -664 0
-663 -665 0
-663 -666 0
-664 -665 0
-664 -666 0
-665 -666 0
-667 -668 0
-667 -669 0
-667 -670 0
-667 -671 0
-667 -672 0
-667 -673 0
-667 -674 0
-667 -675 0
-668 -669 0
-668 -670 0
-668 -671 0
-668 -672 0
-668 -673 0
-668 -674 0
-668 -675 0
-669 -670 0
-669 -671 0
-669 -672 0
-669 -673 0
-669 -674 0
-669 -675 0
-670 -671 0
-670 -672 0
-670 -673 0
-670 -674 0
-670 -675 0
-671 -672 0
-671 -673 0
-671 -674 0
-671 -675 0
-672 -673 0
-672 -674 0
-672 -675 0
-673 -674 0
-673 -675 0
-674 -675 0
-676 -677 0
-676 -678 0
-676 -679 0
-676 -680 0
-676 -681 0
-676 -682 0
-676 -683 0
-676 -684 0
-677 -678 0
-677 -679 0
-677 -680 0
-677 -681 0
-677 -682 0
-677 -683 0
-677 -684 0
-678 -679 0
-678 -680 0
-678 -681 0
-678 -682 0
-678 -683 0
-678 -684 0
-679 -680 0
-679 -681 0
-679 -682 0
-679 -683 0
-679 -684 0
-680 -681 0
-680 -682 0
-680 -683 0
-680 -684 0
-681 -682 0
-681 -683 0
-681 -684 0
-682 -683 0
-682 -684 0
-683 -684 0
-685 -686 0
-685 -687 0
-685 -688 0
-685 -689 0
-685 -690 0
-685 -691 0
-685 -692 0
-685 -693 0
-686 -687 0
-686 -688 0
-686 -689 0
-686 -690 0
-686 -691 0
-686 -692 0
-686 -693 0
-687 -688 0
-687 -689 0
-687 -690 0
-687 -691 0
-687 -692 0
-687 -693 0
-688 -689 0
-688 -690 0
-688 -691 0
-688 -692 0
-688 -693 0
-689 -690 0
-689 -691 0
-689 -692 0
-689 -693 0
-690 -691 0
-690 -692 0
-690 -693 0
-691 -692 0
-691 -693 0
-692 -693 0
-694 -695 0
-694 -696 0
-694 -697 0
-694 -698 0
-694 -699 0
-694 -700 0
-694 -701 0
-694 -702 0
-695 -696 0
-695 -697 0
-695 -698 0
-695 -699 0
-695 -700 0
-695 -701 0
-695 -702 0
-696 -697 0
-696 -698 0
-696 -699 0
-696 -700 0
-696 -701 0
-696 -702 0
-697 -698 0
-697 -699 0
-697 -700 0
-697 -701 0
-697 -702 0
-698 -699 0
-698 -700 0
-698 -701 0
-698 -702 0
-699 -700 0
-699 -701 0
-699 -702 0
-700 -701 0
-700 -702 0
-701 -702 0
-703 -704 0
-703 -705 0
-703 -706 0
-703 -707 0
-703 -708 0
-703 -709 0
-703 -710 0
-703 -711 0
-704 -705 0
-704 -706 0
-704 -707 0
-704 -708 0
-704 -709 0
-704 -710 0
-704 -711 0
-705 -706 0
-705 -707 0
-705 -708 0
-705 -709 0
-705 -710 0
-705 -711 0
-706 -707 0
-706 -708 0
-706 -709 0
-706 -710 0
-706 -711 0
-707 -708 0
-707 -709 0
-707 -710 0
-707 -711 0
-708 -709 0
-708 -710 0
-708 -711 0
-709 -710 0
-709 -711 0
-710 -711 0
-712 -713 0
-712 -714 0
-712 -715 0
-712 -716 0
-712 -717 0
-712 -718 0
-712 -719 0
-712 -720 0
-713 -714 0
-713 -715 0
-713 -716 0
-713 -717 0
-713 -718 0
-713 -719 0
-713 -720 0
-714 -715 0
-714 -716 0
-714 -717 0
-714 -718 0
-714 -719 0
-714 -720 0
-715 -716 0
-715 -717 0
-715 -718 0
-715 -719 0
-715 -720 0
-716 -717 0
-716 -718 0
-716 -719 0
-716 -720 0
-717 -718 0
-717 -719 0
-717 -720 0
-718 -719 0
-718 -720 0
-719 -720 0
-721 -722 0
-721 -723 0
-721 -724 0
-721 -725 0
-721 -726 0
-721 -727 0
-721 -728 0
-721 -729 0
-722 -723 0
-722 -724 0
-722 -725 0
-722 -726 0
-722 -727 0
-722 -728 0
-722 -729 0
-723 -724 0
-723 -725 0
-723 -726 0
-723 -727 0
-723 -728 0
-723 -729 0
-724 -725 0
-724 -726 0
-724 -727 0
-724 -728 0
-724 -729 0
-725 -726 0
-725 -727 0
-725 -728 0
-725 -729 0
-726 -727 0
-726 -728 0
-726 -729 0
-727 -728 0
-727 -729 0
-728 -729 0
-1 -10 0
-1 -19 0
-1 -28 0
-1 -37 0
-1 -46 0
-1 -55 0
-1 -64 0
-1 -73 0
-10 -19 0
-10 -28 0
-10 -37 0
-10 -46 0
-10 -55 0
-10 -64 0
-10 -73 0
-19 -28 0
-19 -37 0
-19 -46 0
-19 -55 0
-19 -64 0
-19 -73 0
-28 -37 0
-28 -46 0
-28 -55 0
-28 -64 0
-28 -73 0
-37 -46 0
-37 -55 0
-37 -64 0
-37 -73 0
-46 -55 0
-46 -64 0
-46 -73 0
-55 -64 0
-55 -73 0
-64 -73 0
-2 -11 0
-2 -20 0
-2 -29 0
-2 -38 0
-2 -47 0
-2 -56 0
-2 -65 0
-2 -74 0
-11 -20 0
-11 -29 0
-11 -38 0
-11 -47 0
-11 -56 0
-11 -65 0
-11 -74 0
-20 -29 0
-20 -38 0
-20 -47 0
-20 -56 0
-20 -65 0
-20 -74 0
-29 -38 0
-29 -47 0
-29 -56 0
-29 -65 0
-29 -74 0
-38 -47 0
-38 -56 0
-38 -65 0
-38 -74 0
-47 -56 0
-47 -65 0
-47 -74 0
-56 -65 0
-56 -74 0
-65 -74 0
-3 -12 0
-3 -21 0
-3 -30 0
-3 -39 0
-3 -48 0
-3 -57 0
-3 -66 0
-3 -75 0
-12 -21 0
-12 -30 0
-12 -39 0
-12 -48 0
-12 -57 0
-12 -66 0
-12 -75 0
-21 -30 0
-21 -39 0
-21 -48 0
-21 -57 0
-21 -66 0
-21 -75 0
-30 -39 0
-30 -48 0
-30 -57 0
-30 -66 0
-30 -75 0
-39 -48 0
-39 -57 0
-39 -66 0
-39 -75 0
-48 -57 0
-48 -66 0
-48 -75 0
-57 -66 0
-57 -75 0
-66 -75 0
-4 -13 0
-4 -22 0
-4 -31 0
-4 -40 0
-4 -49 0
-4 -58 0
-4 -67 0
-4 -76 0
-13 -22 0
-13 -31 0
-13 -40 0
-13 -49 0
-13 -58 0
-13 -67 0
-13 -76 0
-22 -31 0
-22 -40 0
-22 -49 0
-22 -58 0
-22 -67 0
-22 -76 0
-31 -40 0
-31 -49 0
-31 -58 0
-31 -67 0
-31 -76 0
-40 -49 0
-40 -58 0
-40 -67 0
-40 -76 0
-49 -58 0
-49 -67 0
-49 -76 0
-58 -67 0
-58 -76 0
-67 -76 0
-5 -14 0
-5 -23 0
-5 -32 0
-5 -41 0
-5 -50 0
-5 -59 0
-5 -68 0
-5 -77 0
-14 -23 0
-14 -32 0
-14 -41 0
-14 -50 0
-14 -59 0
-14 -68 0
-14 -77 0
-23 -32 0
-23 -41 0
-23 -50 0
-23 -59 0
-23 -68 0
-23 -77 0
-32 -41 0
-32 -50 0
-32 -59 0
-32 -68 0
-32 -77 0
-41 -50 0
-41 -59 0
-41 -68 0
-41 -77 0
-50 -59 0
-50 -68 0
-50 -77 0
-59 -68 0
-59 -77 0
-68 -77 0
-6 -15 0
-6 -24 0
-6 -33 0
-6 -42 0
-6 -51 0
-6 -60 0
-6 -69 0
-6 -78 0
-15 -24 0
-15 -33 0
-15 -42 0
-15 -51 0
-15 -60 0
-15 -69 0
-15 -78 0
-24 -33 0
-24 -42 0
-24 -51 0
-24 -60 0
-24 -69 0
-24 -78 0
-33 -42 0
-33 -51 0
-33 -60 0
-33 -69 0
-33 -78 0
-42 -51 0
-42 -60 0
-42 -69 0
-42 -78 0
-51 -60 0
-51 -69 0
-51 -78 0
-60 -69 0
-60 -78 0
-69 -78 0
-7 -16 0
-7 -25 0
-7 -34 0
-7 -43 0
-7 -52 0
-7 -61 0
-7 -70 0
-7 -79 0
-16 -25 0
-16 -34 0
-16 -43 0
-16 -52 0
-16 -61 0
-16 -70 0
-16 -79 0
-25 -34 0
-25 -43 0
-25 -52 0
-25 -61 0
-25 -70 0
-25 -79 0
-34 -43 0
-34 -52 0
-34 -61 0
-34 -70 0
-34 -79 0
-43 -52 0
-43 -61 0
-43 -70 0
-43 -79 0
-52 -61 0
-52 -70 0
-52 -79 0
-61 -70 0
-61 -79 0
-70 -79 0
-8 -17 0
-8 -26 0
-8 -35 0
-8 -44 0
-8 -53 0
-8 -62 0
-8 -71 0
-8 -80 0
-17 -26 0
-17 -35 0
-17 -44 0
-17 -53 0
-17 -62 0
-17 -71 0
-17 -80 0
-26 -35 0
-26 -44 0
-26 -53 0
-26 -62 0
-26 -71 0
-26 -80 0
-35 -44 0
-35 -53 0
-35 -62 0
-35 -71 0
-35 -80 0
-44 -53 0
-44 -62 0
-44 -71 0
-44 -80 0
-53 -62 0
-53 -71 0
-53 -80 0
-62 -71 0
-62 -80 0
-71 -80 0
-9 -18 0
-9 -27 0
-9 -36 0
-9 -45 0
-9 -54 0
-9 -63 0
-9 -72 0
-9 -81 0
-18 -27 0
-18 -36 0
-18 -45 0
-18 -54 0
-18 -63 0
-18 -72 0
-18 -81 0
-27 -36 0
-27 -45 0
-27 -54 0
-27 -63 0
-27 -72 0
-27 -81 0
-36 -45 0
-36 -54 0
-36 -63 0
-36 -72 0
-36 -81 0
-45 -54 0
-45 -63 0
-45 -72 0
-45 -81 0
-54 -63 0
-54 -72 0
-54 -81 0
-63 -72 0
-63 -81 0
-72 -81 0
-82 -91 0
-82 -100 0
-82 -109 0
-82 -118 0
-82 -127 0
-82 -136 0
-82 -145 0
-82 -154 0
-91 -100 0
-91 -109 0
-91 -118 0
-91 -127 0
-91 -136 0
-91 -145 0
-91 -154 0
-100 -109 0
-100 -118 0
-100 -127 0
-100 -136 0
-100 -145 0
-100 -154 0
-109 -118 0
-109 -127 0
-109 -136 0
-109 -145 0
-109 -154 0
-118 -127 0
-118 -136 0
-118 -145 0
-118 -154 0
-127 -136 0
-127 -145 0
-127 -154 0
-136 -145 0
-136 -154 0
-145 -154 0
-83 -92 0
-83 -101 0
-83 -110 0
-83 -119 0
-83 -128 0
-83 -137 0
-83 -146 0
-83 -155 0
-92 -101 0
-92 -110 0
-92 -119 0
-92 -128 0
-92 -137 0
-92 -146 0
-92 -155 0
-101 -110 0
-101 -119 0
-101 -128 0
-101 -137 0
-101 -146 0
-101 -155 0
-110 -119 0
-110 -128 0
-110 -137 0
-110 -146 0
-110 -155 0
-119 -128 0
-119 -137 0
-119 -146 0
-119 -155 0
-128 -137 0
-128 -146 0
-128 -155 0
-137 -146 0
-137 -155 0
-146 -155 0
-84 -93 0
-84 -102 0
-84 -111 0
-84 -120 0
-84 -129 0
-84 -138 0
-84 -147 0
-84 -156 0
-93 -102 0
-93 -111 0
-93 -120 0
-93 -129 0
-93 -138 0
-93 -147 0
-93 -156 0
-102 -111 0
-102 -120 0
-102 -129 0
-102 -138 0
-102 -147 0
-102 -156 0
-111 -120 0
-111 -129 0
-111 -138 0
-111 -147 0
-111 -156 0
-120 -129 0
-120 -138 0
-120 -147 0
-120 -156 0
-129 -138 0
-129 -147 0
-129 -156 0
-138 -147 0
-138 -156 0
-147 -156 0
-85 -94 0
-85 -103 0
-85 -112 0
-85 -121 0
-85 -130 0
-85 -139 0
-85 -148 0
-85 -157 0
-94 -103 0
-94 -112 0
-94 -121 0
-94 -130 0
-94 -139 0
-94 -148 0
-94 -157 0
-103 -112 0
-103 -121 0
-103 -130 0
-103 -139 0
-103 -148 0
-103 -157 0
-112 -121 0
-112 -130 0
-112 -139 0
-112 -148 0
-112 -157 0
-121 -130 0
-121 -139 0
-121 -148 0
-121 -157 0
-130 -139 0
-130 -148 0
-130 -157 0
-139 -148 0
-139 -157 0
-148 -157 0
-86 -95 0
-86 -104 0
-86 -113 0
-86 -122 0
-86 -131 0
-86 -140 0
-86 -149 0
-86 -158 0
-95 -104 0
-95 -113 0
-95 -122 0
-95 -131 0
-95 -140 0
-95 -149 0
-95 -158 0
-104 -113 0
-104 -122 0
-104 -131 0
-104 -140 0
-104 -149 0
-104 -158 0
-113 -122 0
-113 -131 0
-113 -140 0
-113 -149 0
-113 -158 0
-122 -131 0
-122 -140 0
-122 -149 0
-122 -158 0
-131 -140 0
-131 -149 0
-131 -158 0
-140 -149 0
-140 -158 0
-149 -158 0
-87 -96 0
-87 -105 0
-87 -114 0
-87 -123 0
-87 -132 0
-87 -141 0
-87 -150 0
-87 -159 0
-96 -105 0
-96 -114 0
-96 -123 0
-96 -132 0
-96 -141 0
-96 -150 0
-96 -159 0
-105 -114 0
-105 -123 0
-105 -132 0
-105 -141 0
-105 -150 0
-105 -159 0
-114 -123 0
-114 -132 0
-114 -141 0
-114 -150 0
-114 -159 0
-123 -132 0
-123 -141 0
-123 -150 0
-123 -159 0
-132 -141 0
-132 -150 0
-132 -159 0
-141 -150 0
-141 -159 0
-150 -159 0
-88 -97 0
-88 -106 0
-88 -115 0
-88 -124 0
-88 -133 0
-88 -142 0
-88 -151 0
-88 -160 0
-97 -106 0
-97 -115 0
-97 -124 0
-97 -133 0