-
Notifications
You must be signed in to change notification settings - Fork 0
/
AdventOfCode2018Day23.java
1212 lines (1188 loc) · 51.5 KB
/
AdventOfCode2018Day23.java
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
package Day23;
import java.util.*;
/*
* Plain brute-force approach to find clusters
*/
class Point implements Comparable<Point> {
int x;
int y;
int z;
int r;
int compare;
int count;
Point(int x, int y, int z, int r) {
this.x = x;
this.y = y;
this.z = z;
this.r = r;
compare = r;
count = 0;
}
// manhattan distance
public boolean inRange(Point p) {
if (Math.abs(x - p.x) + Math.abs(y - p.y) + Math.abs(z - p.z) <= r) return true;
return false;
}
// compare by the range
public int compareTo(Point p) {
return p.compare - compare;
}
@Override
public boolean equals(Object p) {
return (x == ((Point)p).x && y == ((Point)p).y && z == ((Point)p).z);
}
public int getDistFromZero() {
return (Math.abs(x) + Math.abs(y) + Math.abs(z));
}
public int getDistTo(Point p) {
return (int)Math.sqrt(Math.pow(x - p.x, 2) + Math.pow(y - p.y, 2) + Math.pow(z - p.z, 2));
}
public String toString() {
return "(" + x + ", " + y + ", " + z + ") with radius " + r;
}
}
class Center implements Comparable<Center> {
int countInRange;
Point p;
Center(Point p, int countInRange) {
this.p = p;
this.countInRange = countInRange;
}
public int compareTo(Center c) {
if (c.countInRange == countInRange) {
if (p.getDistFromZero() == c.p.getDistFromZero()) {
return p.r - c.p.r; // smallest by size
}
return (p.getDistFromZero() - c.p.getDistFromZero()); // closest to 0,0,0
}
return c.countInRange - countInRange; // in range of most bots
}
public String toString() {
return p.x + " " + p.y + " " + p.z;
}
}
public class AdventOfCode2018Day23 {
public static void main(String args[]) {
Scanner s = new Scanner(System.in);
ArrayList<Point> c = new ArrayList<>();
while (true) {
String line = s.nextLine();
if (line.equals("")) break;
line = line.replaceAll("pos=<", "");
line = line.replaceAll(">, r=", ",");
String[] sd = line.split(",");
Point p = new Point(Integer.parseInt(sd[0]), Integer.parseInt(sd[1]), Integer.parseInt(sd[2]), Integer.parseInt(sd[3]));
c.add(p);
}
s.close();
Collections.sort(c);
int countInRange = 0;
int minX = 0, maxX = 0, minY = 0, maxY = 0, minZ = 0, maxZ = 0, aveX = 0, aveY = 0, aveZ = 0;
for (Point p : c) {
if (c.get(0).inRange(p)) countInRange++;
aveX += p.x; aveY += p.y; aveZ += p.z;
if (p.x < minX) minX = p.x;
if (p.x > maxX) maxX = p.x;
if (p.y < minY) minY = p.y;
if (p.y > maxY) maxY = p.y;
if (p.z < minZ) minZ = p.z;
if (p.z > maxZ) maxZ = p.z;
/*if (Math.abs(p.x) > overarching.r) overarching.r = Math.abs(p.x);
if (Math.abs(p.y) > overarching.r) overarching.r = Math.abs(p.y);
if (Math.abs(p.z) > overarching.r) overarching.r = Math.abs(p.z);*/
}
Point min = new Point(minX, minY, minZ, 0);
Point max = new Point(maxX, maxY, maxZ, 0);
aveX /= c.size(); aveY /= c.size(); aveZ /= c.size();
Point overarching = new Point(aveX, aveY, aveZ, 0);
overarching.r = Math.max(min.getDistTo(overarching), max.getDistTo(overarching));
overarching.r = (int)Math.pow(2, Math.ceil(Math.log((double)overarching.r) / (double)Math.log(2.0)));
System.out.println("Origin: " + overarching);
System.out.println("Answer to the first part: " + countInRange);
System.out.println("For the second part, it is taking forever and I did not have enough time to find the bug. I will work on it later when I get some free time unless I forget about it :)");
// here comes the second part
PriorityQueue<Center> pq = new PriorityQueue<>();
pq.add(new Center(overarching, c.size()));
while (!pq.isEmpty()) {
Center curr = pq.poll();
//System.out.println("In range: " + curr.countInRange + " " + curr.p.r);
if (curr.p.r == 0) {
System.out.println(curr + " " + curr.countInRange);
System.out.println("Answer to the second part: " + (curr.p.x+curr.p.y+curr.p.z) + "\n");
break;
}
else if (curr.p.r == 1) {
//pq.clear();
Center maxCenter = null;
int largestCount = -1;
for (int x = curr.p.x - 1; x <= curr.p.x + 1; x++) {
for (int y = curr.p.y - 1; y <= curr.p.y + 1; y++) {
for (int z = curr.p.z - 1; z <= curr.p.z + 1; z++) {
Point p = new Point(x, y, z, 0);
int count = finalCount(p, c);
Center cen = new Center(p, count);
if (maxCenter == null || (count >= largestCount && maxCenter.p.getDistFromZero() > cen.p.getDistFromZero())) {
maxCenter = cen;
largestCount = count;
}
}
}
}
pq.add(maxCenter);
}
else {
// split into 8 Centers
Point p1 = new Point(curr.p.x+curr.p.r/2, curr.p.y+curr.p.r/2, curr.p.z+curr.p.r/2, curr.p.r/2);
pq.add(new Center(p1, countInRange(p1, c)));
Point p2 = new Point(curr.p.x+curr.p.r/2, curr.p.y+curr.p.r/2, curr.p.z-curr.p.r/2, curr.p.r/2);
pq.add(new Center(p2, countInRange(p2, c)));
Point p3 = new Point(curr.p.x+curr.p.r/2, curr.p.y-curr.p.r/2, curr.p.z+curr.p.r/2, curr.p.r/2);
pq.add(new Center(p3, countInRange(p3, c)));
Point p4 = new Point(curr.p.x-curr.p.r/2, curr.p.y+curr.p.r/2, curr.p.z+curr.p.r/2, curr.p.r/2);
pq.add(new Center(p4, countInRange(p4, c)));
Point p5 = new Point(curr.p.x+curr.p.r/2, curr.p.y-curr.p.r/2, curr.p.z-curr.p.r/2, curr.p.r/2);
pq.add(new Center(p5, countInRange(p5, c)));
Point p6 = new Point(curr.p.x-curr.p.r/2, curr.p.y+curr.p.r/2, curr.p.z-curr.p.r/2, curr.p.r/2);
pq.add(new Center(p6, countInRange(p6, c)));
Point p7 = new Point(curr.p.x-curr.p.r/2, curr.p.y-curr.p.r/2, curr.p.z+curr.p.r/2, curr.p.r/2);
pq.add(new Center(p7, countInRange(p7, c)));
Point p8 = new Point(curr.p.x-curr.p.r/2, curr.p.y-curr.p.r/2, curr.p.z-curr.p.r/2, curr.p.r/2);
pq.add(new Center(p8, countInRange(p8, c)));
}
}
}
private static int finalCount(Point test, ArrayList<Point> c) {
int count = 0;
for (Point p : c) {
if (p.inRange(test)) count++;
}
return count;
}
private static int countInRange(Point test, ArrayList<Point> c) {
int count = 0;
for (Point p : c) {
double dist = Math.sqrt(Math.pow(p.x - test.x, 2) + Math.pow(p.y - test.y, 2) + Math.pow(p.z - test.z, 2));
double ratio = ((double)p.r) / dist, x = 0, y = 0, z = 0;
if (ratio >= 1 || p.r >= dist) {
count++;
continue;
}
while (true) { // find where the bot ends on the path towards the current cube
x = (int)((1-ratio)*p.x+ratio*test.x);
y = (int)((1-ratio)*p.y+ratio*test.y);
z = (int)((1-ratio)*p.z+ratio*test.z);
if (Math.abs(x-p.x) + Math.abs(y-p.y) + Math.abs(z-p.z) > p.r) {
ratio -= 0.001;
}
else break;
}
// check if the bot's ending part is inside of the current cube
if (x >= test.x - test.r && x <= test.x + test.r &&
y >= test.y - test.r && y <= test.y + test.r &&
z >= test.z - test.r && z <= test.z + test.r) count++;
}
return count;
}
}
/*
pos=<70932188,34743415,13062034>, r=76082857
pos=<106955091,25680936,39877548>, r=76227207
pos=<53185960,-34838071,17086321>, r=79082157
pos=<23486359,39569255,89931713>, r=97870382
pos=<60023478,-38231503,83130191>, r=97171540
pos=<67439466,22612444,3128451>, r=70392218
pos=<70807196,62675476,35937093>, r=81014557
pos=<84062142,31605221,28090534>, r=71045602
pos=<94481737,-348921,40188224>, r=62787002
pos=<115014210,8116575,40291216>, r=74750733
pos=<130051481,16083298,36826149>, r=92777434
pos=<100623374,-2402591,27320132>, r=83850130
pos=<104850603,14011883,80188271>, r=90161622
pos=<60595056,3873536,8887820>, r=55978226
pos=<51454631,18048888,54567182>, r=88280232
pos=<65904249,58628570,36140145>, r=71861499
pos=<68798916,13894702,41659583>, r=85865960
pos=<98790279,25761991,22278750>, r=85742293
pos=<8996994,-28039790,33297161>, r=94634944
pos=<106727332,35931026,44602047>, r=81525324
pos=<60322605,17347145,52271167>, r=80914487
pos=<64875283,1577480,39978898>, r=94480425
pos=<-4157832,75402939,-50851076>, r=94021483
pos=<122490329,14289977,42391900>, r=77857135
pos=<114263327,-182934,39616904>, r=82973875
pos=<37081774,37743973,29042705>, r=55833691
pos=<-19504304,148534982,41486052>, r=93493754
pos=<74064449,48243714,25455353>, r=80321637
pos=<125026875,8312219,43195295>, r=81663677
pos=<102114413,14855613,43042421>, r=57396401
pos=<18813976,21452931,-2433338>, r=89286488
pos=<63952384,14337568,-12876419>, r=74635127
pos=<-11051509,18593887,43462428>, r=70396710
pos=<69238671,50114806,32257411>, r=70565075
pos=<80932135,32458826,18362699>, r=78497081
pos=<56349554,35833484,70754111>, r=54047849
pos=<95757757,34120917,22854111>, r=90493429
pos=<54212105,49503608,181447>, r=87003350
pos=<114989490,30670146,36753165>, r=92375397
pos=<90789672,26178062,31902222>, r=68534300
pos=<63987777,-58552423,59560182>, r=97886808
pos=<56722210,20731826,34878607>, r=56288593
pos=<90614128,15047837,32669791>, r=56460936
pos=<100295228,15745485,43459876>, r=56049581
pos=<54479747,32201863,75980199>, r=53772768
pos=<39687165,5031646,109898927>, r=81711558
pos=<58882772,6081340,8109949>, r=52835849
pos=<-713051,18388572,41702775>, r=61612684
pos=<103196987,25104857,30391244>, r=81380083
pos=<76557255,-17356336,62927471>, r=72627324
pos=<-3929222,14320850,37584102>, r=64879743
pos=<97892656,14447007,41736963>, r=54071443
pos=<-1271439,10252819,37385375>, r=62523034
pos=<56325974,-4242704,-26972102>, r=95685148
pos=<65315494,40992947,56077994>, r=53497187
pos=<99421295,19631521,69175033>, r=79338677
pos=<483195,45610683,41004669>, r=88336631
pos=<100654183,22211924,29779631>, r=76555240
pos=<56865293,16954244,3385892>, r=53902655
pos=<114986974,20758908,37509521>, r=81705382
pos=<13972220,35365136,38964263>, r=66642469
pos=<63582095,47821293,34987865>, r=59884351
pos=<94706141,55838175,41179101>, r=92834462
pos=<101809135,16210718,85005028>, r=94135789
pos=<43337912,71833224,17340722>, r=95368362
pos=<-2047258,16499499,38925129>, r=63835574
pos=<127650967,14466667,34660600>, r=90925762
pos=<114194906,20421111,21029193>, r=97055554
pos=<51933802,66752449,42540417>, r=59614573
pos=<-31061971,16472680,45018088>, r=86730336
pos=<126578089,14194797,62965771>, r=94849609
pos=<51530964,4080625,-9981324>, r=65576101
pos=<51852445,86159865,48519307>, r=77642340
pos=<52180921,17777293,-8588817>, r=62015759
pos=<37750926,54194202,58341899>, r=66640916
pos=<86938460,-5356594,26415367>, r=74024050
pos=<52662726,36643923,-7423982>, r=80199804
pos=<118200303,22849547,45019771>, r=79498936
pos=<66831889,55362649,23353479>, r=82309990
pos=<108830050,17269267,28763865>, r=80804499
pos=<91394962,-9397628,38509365>, r=70427514
pos=<110054400,26797739,26129382>, r=94191618
pos=<55627764,35130154,21541616>, r=52685108
pos=<119021155,10252122,33545289>, r=83368586
pos=<58722115,41511957,33182121>, r=50520865
pos=<64403559,46194824,50821057>, r=52530253
pos=<55357505,6659841,-18830634>, r=75672596
pos=<76254957,37319909,23660920>, r=73382702
pos=<61640535,52599442,75170506>, r=80521210
pos=<122385451,14203889,66220841>, r=93921012
pos=<100244104,5018079,31520266>, r=71850158
pos=<82081383,23129394,4379732>, r=84300056
pos=<99065937,30825858,15588119>, r=97772595
pos=<116133693,18265457,51547284>, r=77057141
pos=<52256299,30358745,50007183>, r=74240591
pos=<59509894,49026601,15676312>, r=76329320
pos=<59175810,58285957,48100353>, r=56672847
pos=<89129622,-27112672,51059866>, r=83088437
pos=<54779474,14931281,29211474>, r=84781460
pos=<58446570,42845141,32698159>, r=52062283
pos=<61862173,46364434,38645244>, r=53050120
pos=<59644216,-4104996,104670106>, r=84205700
pos=<113466424,-6277854,40699853>, r=87188713
pos=<88618711,20141576,40923119>, r=51306024
pos=<30502823,51831249,38274519>, r=67267911
pos=<56738812,20510965,-5250022>, r=65968528
pos=<58293908,43697440,69251205>, r=62353463
pos=<109500456,24736053,39729692>, r=77975558
pos=<78456611,17775083,23905850>, r=55794579
pos=<103517548,19126241,53371699>, r=67126208
pos=<-12263026,14804850,44707521>, r=66574097
pos=<59710908,15511091,-990057>, r=59680928
pos=<61928634,20561019,45136409>, r=75458094
pos=<89825180,10772426,36769829>, r=50427220
pos=<54798081,22088148,39561793>, r=70123747
pos=<67677948,-22427413,42811645>, r=55438016
pos=<-5695864,16853699,24908958>, r=81854355
pos=<-13617304,14298749,43021926>, r=69107886
pos=<97639071,4221323,33966350>, r=67595740
pos=<94668710,40164358,40194419>, r=78107385
pos=<31264483,2721629,12897457>, r=62005744
pos=<53576971,24447380,8988631>, r=52504478
pos=<76258490,519073,32838432>, r=51045275
pos=<15425129,21986272,-7792889>, r=98567820
pos=<90598370,26198910,40951799>, r=59314220
pos=<32582492,-355164,18997671>, r=57664381
pos=<73835746,63171851,29802095>, r=90674230
pos=<126677052,19125296,33329525>, r=95941569
pos=<56089763,19181211,-15491718>, r=74231424
pos=<57519720,20084856,126740281>, r=95455607
pos=<33386890,48038589,946548>, r=97918894
pos=<66236948,83721210,41963263>, r=91463670
pos=<59765458,30283310,-16471215>, r=89988727
pos=<-2933604,23038390,21838497>, r=88347289
pos=<69081478,53364906,38412173>, r=67503077
pos=<101049675,10060125,41141395>, r=57992558
pos=<100008356,32454967,43340830>, r=72591438
pos=<109393083,-18948615,44410556>, r=92075431
pos=<65031132,-19896749,53672918>, r=54387080
pos=<101137076,109876103,-29433305>, r=69441271
pos=<37489010,16664382,51487976>, r=65428674
pos=<77877189,16229651,42389859>, r=51083530
pos=<83644395,28290365,41187874>, r=54215655
pos=<59270430,28524212,21184520>, r=50078866
pos=<82200309,17808555,-4263046>, r=87741199
pos=<94845158,44049406,30934045>, r=91429251
pos=<38222205,36136535,-8780366>, r=90908667
pos=<63890697,43632727,38922734>, r=52069518
pos=<94704333,-950161,42263760>, r=61535022
pos=<55494341,22073513,-20723460>, r=81760064
pos=<85117842,14777006,27936303>, r=55427357
pos=<99981747,23687693,71070838>, r=85851363
pos=<92771274,51188159,27928078>, r=99500124
pos=<29921726,17282907,47951257>, r=62962444
pos=<52517489,17495577,119596987>, r=80720865
pos=<107543935,-952558,37781114>, r=78859668
pos=<227363471,20271523,30344823>, r=79921258
pos=<56840403,8901316,20360281>, r=88710921
pos=<-15031494,7679708,43655908>, r=72585256
pos=<-1977883,8829489,30452009>, r=71585719
pos=<130654084,6797807,40150026>, r=91850781
pos=<27995505,18498744,-9366619>, r=84083728
pos=<53593650,59502550,35284278>, r=61280650
pos=<56639910,18756016,66809724>, r=52859168
pos=<4956780,105313555,128100318>, r=89551723
pos=<98904092,32207856,20750688>, r=93830055
pos=<100007144,16869733,64902332>, r=72889978
pos=<37727965,4599141,44557302>, r=69383432
pos=<54063133,28687053,31545410>, r=59159300
pos=<89335625,18731801,-2426760>, r=93962997
pos=<74106169,52601353,22607411>, r=87568884
pos=<81493072,62667056,37775575>, r=89853287
pos=<123317452,14217567,43522565>, r=77481258
pos=<92035356,45926855,54170316>, r=83243600
pos=<57407835,62022858,38853311>, r=64046577
pos=<100123788,29024509,42895298>, r=69721959
pos=<65326818,21746775,16889163>, r=53653358
pos=<122104832,20231127,38021089>, r=87783657
pos=<34626921,33813790,16436186>, r=66964425
pos=<129579038,10175556,34393931>, r=93153918
pos=<76144539,7311472,10657230>, r=66320218
pos=<93083215,31906812,66538939>, r=82639679
pos=<44967994,18648196,2208091>, r=55686307
pos=<13736172,-1245811,76800718>, r=80841660
pos=<75380971,33097677,25078375>, r=66869019
pos=<23974728,19339834,15015517>, r=64563600
pos=<38830051,15329267,-25722538>, r=86435554
pos=<-11570741,25060510,38310618>, r=82534385
pos=<86831012,41249358,20448451>, r=91100814
pos=<79979836,61812338,29997554>, r=95263603
pos=<46305086,17350179,-23848220>, r=79107062
pos=<118342906,14571828,44370572>, r=72013039
pos=<76033011,16898158,-11948638>, r=88348552
pos=<62704362,16430254,-4369420>, r=66972780
pos=<107027000,29941235,30669820>, r=89767165
pos=<30496026,73252753,44597437>, r=82373047
pos=<121716240,22679491,44860838>, r=83003785
pos=<99283587,39170616,39708136>, r=82215017
pos=<93205806,36626096,28112740>, r=85187898
pos=<78146780,37791515,43825596>, r=55581553
pos=<110845284,27396232,44818881>, r=76891462
pos=<53299340,67762644,43321640>, r=61209139
pos=<86570062,32074254,26909185>, r=75203874
pos=<112723064,16503283,34499712>, r=78195412
pos=<96362159,-16937367,44268953>, r=77175042
pos=<72716722,26825213,32992189>, r=50018520
pos=<107118512,10041966,28544776>, r=76676065
pos=<94854731,19887353,54938259>, r=60791043
pos=<45411745,56433750,41561093>, r=53674723
pos=<85104835,-3376398,43539720>, r=53085816
pos=<21525897,18004714,26910887>, r=53781694
pos=<87273082,22511350,8923463>, r=84329770
pos=<54466633,37133728,12562615>, r=62506494
pos=<72583180,42795470,26596683>, r=72250701
pos=<79210200,-10583508,49134706>, r=54714968
pos=<65893085,31063517,8290298>, r=72135052
pos=<89301607,21323330,43135075>, r=50958735
pos=<80294388,46054750,29047457>, r=80770576
pos=<58415299,31113892,14444133>, r=58554143
pos=<114093045,14587868,17129555>, r=95020151
pos=<52603343,57530045,60523075>, r=61767195
pos=<86154314,45339205,32435303>, r=82527169
pos=<80469421,17516916,-9796402>, r=91251494
pos=<73647532,15891462,-4083176>, r=77090924
pos=<77816161,5841211,75469422>, r=63230842
pos=<92286265,-3250083,52480511>, r=63803125
pos=<114337437,21410963,24298078>, r=94919058
pos=<61250631,22128606,86819244>, r=61309196
pos=<55008425,73304267,65589057>, r=85012720
pos=<91469553,10726208,7589166>, r=81298489
pos=<53613729,22131067,60372585>, r=50600487
pos=<69729507,25197598,9359821>, r=69036551
pos=<98126273,13610904,-1803454>, r=97009369
pos=<57752575,67359913,74147914>, r=90371199
pos=<56572655,41140026,9119875>, r=72061990
pos=<235573853,15940681,25618381>, r=66013864
pos=<69517360,46830354,26789807>, r=73026639
pos=<52821244,38251876,18033636>, r=56508684
pos=<78384192,20406467,-9860849>, r=92120257
pos=<95192781,22237846,42737425>, r=58161987
pos=<101506148,23633287,43088246>, r=65520547
pos=<99532103,35149229,34197016>, r=83953045
pos=<89753970,29096815,54069701>, r=64031312
pos=<57921252,55363160,35803100>, r=60950143
pos=<87996121,49077993,44990305>, r=75552664
pos=<119351019,37878806,50145259>, r=98485937
pos=<63289151,62456996,11484417>, r=97730502
pos=<124294684,17155940,41138755>, r=83780602
pos=<92946232,15325979,36051543>, r=55689572
pos=<62984214,38794770,26511399>, r=58736314
pos=<58993040,18175513,90105147>, r=58384414
pos=<65432944,45082631,39795478>, r=54188929
pos=<120487958,4744614,41472294>, r=82415426
pos=<56681505,-37409368,59775019>, r=69652499
pos=<71549434,16013395,44884207>, r=83118699
pos=<90591593,41668508,36479769>, r=79249262
pos=<41590873,27833796,16487174>, r=53970036
pos=<87293640,-3963069,60734738>, r=67778096
pos=<105055384,-27934458,45075630>, r=96058551
pos=<132640024,15373125,40124598>, r=91357344
pos=<7684657,17864546,43413828>, r=50979871
pos=<62058682,16424591,41810626>, r=95613266
pos=<72915497,-18905763,80639176>, r=88246733
pos=<-13441558,16681914,71160743>, r=93140018
pos=<124820194,27159689,42877912>, r=92570835
pos=<40487601,-8915142,20477267>, r=56839814
pos=<86389449,-21090847,50938871>, r=74205474
pos=<37015113,-3295525,19983721>, r=55186054
pos=<60207127,-27168092,33825428>, r=61694136
pos=<62247437,-2518738,22163497>, r=50747062
pos=<89034518,30752468,12608525>, r=90647201
pos=<43393427,-10882732,11965118>, r=64413573
pos=<58919962,37018946,15188893>, r=64218777
pos=<34315735,20954623,-1918295>, r=72771256
pos=<33854038,-10366773,25650372>, r=59751699
pos=<66912162,51141869,43377247>, r=58145571
pos=<55524611,-6081568,76722209>, r=54114901
pos=<71854691,37412153,42165490>, r=50570235
pos=<85766984,26211515,38770849>, r=56676399
pos=<94120503,22477559,34905335>, r=65161529
pos=<103317059,21136979,37725048>, r=70197938
pos=<57439678,-47054692,19967742>, r=92670962
pos=<72101158,38595705,28845493>, r=65320131
pos=<107687401,10881248,58999891>, r=71592480
pos=<74970023,-37388530,40321165>, r=80181765
pos=<76937770,32922538,34578813>, r=58750534
pos=<-135,22450414,41506326>, r=65157970
pos=<70322286,-22683623,3264099>, r=97886101
pos=<99263374,18831130,38125744>, r=63437498
pos=<56366494,-14909150,64500580>, r=51562512
pos=<70292590,37815373,20804681>, r=70772053
pos=<118558684,7603904,40863240>, r=78235875
pos=<118483811,18972897,22651590>, r=98273928
pos=<77888761,-41393874,41134729>, r=86292281
pos=<75856913,38386207,34391475>, r=63320381
pos=<111097751,41676916,43866326>, r=92377109
pos=<113525811,21705104,49217334>, r=75558961
pos=<98524230,28556190,26320429>, r=84228926
pos=<89483526,21255654,11940210>, r=82267712
pos=<53772085,28397224,-3238650>, r=68876943
pos=<92137248,25639372,2482103>, r=98763245
pos=<61494572,49095318,32811929>, r=61246709
pos=<57770023,21599053,48182330>, r=77639521
pos=<119675752,24284057,35284924>, r=92143788
pos=<58681802,43668449,77102465>, r=70563510
pos=<98017692,14039116,23795265>, r=71730294
pos=<213257001,10867144,3779072>, r=94161786
pos=<93227678,29855563,37217154>, r=69334966
pos=<127425092,15698764,47857303>, r=82091988
pos=<110422808,39015111,42731450>, r=90175355
pos=<106497764,17603881,43374791>, r=64195712
pos=<78169274,40515146,27573779>, r=74579476
pos=<75492274,43420252,41313224>, r=61068069
pos=<64328974,26568685,44223964>, r=80774458
pos=<138574944,-80338904,85301139>, r=58360297
pos=<71467721,4500701,40814781>, r=77313843
pos=<105999567,28148425,43906497>, r=73710362
pos=<70146123,62830834,34228040>, r=82217661
pos=<76460859,25162945,17081921>, r=68010625
pos=<119236573,21462695,42682863>, r=81485730
pos=<66241763,26976163,447593>, r=76239161
pos=<52281608,24543671,6050441>, r=54244018
pos=<130895902,21414307,44517737>, r=91261369
pos=<60567154,46052480,77520572>, r=75250910
pos=<87694070,36970707,62972440>, r=78747980
pos=<60999244,47043083,3121906>, r=88389160
pos=<75384477,27462431,30765826>, r=55549847
pos=<70844659,33521267,30884677>, r=56950147
pos=<87380557,55194883,36049751>, r=89994563
pos=<59864202,38797380,445045>, r=81685634
pos=<97564520,8335495,43757107>, r=53616464
pos=<100325183,15212463,31958848>, r=67047628
pos=<70484296,19884994,68494837>, r=49974862
pos=<75804074,-13544681,56299817>, r=61435021
pos=<67186249,39311940,100056825>, r=97665841
pos=<120207954,15969093,44402280>, r=75243565
pos=<111429965,26134179,23103388>, r=97929534
pos=<61409153,74846698,40635193>, r=79089707
pos=<46549084,45864667,29916338>, r=53613015
pos=<12205713,7404653,37276327>, r=52002675
pos=<56779380,28558304,86834950>, r=63283378
pos=<100804815,41519480,34658537>, r=91134770
pos=<73796757,20838064,9264842>, r=68838749
pos=<92013855,27536295,9085502>, r=93933422
pos=<86701143,31220777,21531909>, r=79859390
pos=<29829857,62161831,41570971>, r=74974887
pos=<120888627,17198766,57268851>, r=86467204
pos=<53728511,-63527412,41436715>, r=83963502
pos=<55653284,41918087,45120037>, r=53620157
pos=<94569373,18238003,37181462>, r=59094666
pos=<9107247,15732527,89153350>, r=87634399
pos=<132174699,16065282,43059662>, r=88649254
pos=<97614639,13671176,44637516>, r=50117284
pos=<53430300,42800416,14169866>, r=65529586
pos=<91472285,10966750,9034842>, r=79615065
pos=<63652062,39175236,26155480>, r=60140745
pos=<61436871,26833166,57322562>, r=68700938
pos=<-12804865,13869842,47787040>, r=66317691
pos=<67474973,15717424,-28158099>, r=94819300
pos=<108144462,14004921,44962500>, r=60655643
pos=<85435963,136314174,4763652>, r=68966791
pos=<71269973,58702436,28793178>, r=84647970
pos=<82808554,54864698,32375067>, r=88766943
pos=<13726235,24995443,32147016>, r=63336014
pos=<9724226,16385886,32649030>, r=58226463
pos=<76533938,16631647,24319164>, r=52315179
pos=<10361335,29989315,34903118>, r=68938820
pos=<86922809,34362873,20641054>, r=84113380
pos=<84609145,14503042,14118219>, r=68462976
pos=<85901960,24454051,5916945>, r=87907835
pos=<911749,17934644,29100126>, r=72136528
pos=<71799943,48372530,26822436>, r=76818808
pos=<90762541,33905004,42208335>, r=65928007
pos=<127683674,27814562,42967719>, r=95999250
pos=<61313411,44483874,26236865>, r=63029196
pos=<82330670,43531579,29695152>, r=79635893
pos=<84579277,3344500,37133665>, r=52245460
pos=<89786027,-28064110,34422863>, r=91571585
pos=<3448232,15214632,40908247>, r=55071912
pos=<104634977,28425459,43277287>, r=73252117
pos=<70533047,-32864231,43259769>, r=68281805
pos=<83699735,15735868,32177616>, r=50726988
pos=<105613457,28457982,40209085>, r=77331663
pos=<73103580,39214597,42129380>, r=53657636
pos=<15768633,27388784,305600>, r=95528469
pos=<109831837,22346920,61651659>, r=84941153
pos=<94418576,32875691,21304836>, r=89458192
pos=<117396279,8643842,38882961>, r=78013838
pos=<52521139,-42950879,9198973>, r=94417491
pos=<88397618,35596798,47360540>, r=62465729
pos=<66556165,27984856,9515247>, r=68494516
pos=<54360652,27637245,-3705048>, r=69171674
pos=<18944405,1236255,18797842>, r=69910853
pos=<100883817,16929767,36786240>, r=64496150
pos=<101971278,24896866,54875502>, r=72854426
pos=<83080823,39850389,55116317>, r=69158326
pos=<103243332,1422355,10857245>, r=99108358
pos=<58559031,17364061,47425177>, r=82724074
pos=<74108879,45799658,29966206>, r=73411059
pos=<91722287,43329270,61640166>, r=87802426
pos=<91303909,23651688,41733770>, r=56690701
pos=<88627675,41454426,20844061>, r=92707019
pos=<62840128,-10795446,27132359>, r=54647662
pos=<103982205,41008993,41600845>, r=86859094
pos=<80994329,5336525,21671996>, r=62130685
pos=<64436541,50190520,44675991>, r=53419818
pos=<190700012,48316879,2802685>, r=50646355
pos=<62184018,-1691939,4489882>, r=67530564
pos=<17225645,66052129,36746642>, r=96293639
pos=<79193345,18905429,29535408>, r=52032101
pos=<97648165,40693585,40125792>, r=81684876
pos=<38596926,66817136,25490271>, r=86943925
pos=<120551410,21357664,27859946>, r=97517872
pos=<107730705,23155425,59326645>, r=81323515
pos=<105730922,-2299762,28418998>, r=87755985
pos=<83686905,28545287,5584198>, r=90116739
pos=<103414363,19478473,71850672>, r=85854259
pos=<103691008,29370839,34985143>, r=81545804
pos=<81766841,11296717,-2237476>, r=80852030
pos=<-19405787,25333530,38441506>, r=90511676
pos=<99093499,14689938,43716706>, r=53535701
pos=<65566422,63506251,25685596>, r=86855810
pos=<136558340,17399297,49582576>, r=94650941
pos=<140438663,13429841,50613368>, r=95592585
pos=<15051990,-13383092,43535355>, r=63685047
pos=<-6219770,17031316,44892543>, r=62572362
pos=<113564260,29753040,39081766>, r=87704264
pos=<63040268,52279046,44162031>, r=54626016
pos=<20004753,-24677056,57108450>, r=78312214
pos=<85306823,30801712,86008733>, r=93227997
pos=<25584336,14063310,90005945>, r=70340635
pos=<45426883,72261970,41143493>, r=69905719
pos=<4794220,21673464,9230418>, r=91863304
pos=<46157156,58746273,27498914>, r=69303948
pos=<99055616,16094738,41556751>, r=57062456
pos=<57588158,33167083,92930972>, r=74797010
pos=<99570220,-7434363,19910990>, r=95237922
pos=<110603460,21573150,37417271>, r=78228067
pos=<68671252,24993285,16408573>, r=60724735
pos=<5688868,413683,26341727>, r=76445164
pos=<94815334,18430291,94814783>, r=99171363
pos=<92032029,-12214020,29307247>, r=83083470
pos=<65981521,33060712,64274708>, r=54427643
pos=<55567401,21272312,44320104>, r=64166359
pos=<96373096,23158975,21847210>, r=81153643
pos=<65372230,46312467,48484385>, r=51279804
pos=<32350863,5623030,19309307>, r=51606106
pos=<106411168,47975723,43128386>, r=94727263
pos=<100826113,13564812,2353420>, r=95506255
pos=<6378825,3037779,40508607>, r=58964428
pos=<74643818,8131608,89255598>, r=71554088
pos=<109793466,16831822,41837189>, r=68256842
pos=<76361642,51152233,24568522>, r=86414089
pos=<74580544,45041414,49763711>, r=60496592
pos=<100869189,47521352,34384180>, r=97475258
pos=<124019636,-98570919,64085932>, r=65508178
pos=<62584689,26341862,18621669>, r=53773611
pos=<98126572,13746651,1219878>, r=94122341
pos=<83129609,17996392,68308405>, r=60545294
pos=<76315160,23793010,86194268>, r=77413346
pos=<83470558,3697222,30631783>, r=57285905
pos=<91424109,54502627,41133381>, r=88262109
pos=<93524589,38230805,19040648>, r=96183478
pos=<65124071,18705377,49975736>, r=82962793
pos=<91260215,24744195,16300725>, r=83172469
pos=<60677870,50957812,53815044>, r=56561442
pos=<71591827,3867947,68211622>, r=51721761
pos=<59359524,58714008,26826036>, r=74716285
pos=<100630152,33988338,19951780>, r=98135835
pos=<37184102,71458584,42928283>, r=75559984
pos=<68250482,17778641,49991787>, r=90125295
pos=<104287291,44148413,44128712>, r=87775752
pos=<39876473,16839503,-7530856>, r=68708254
pos=<102713728,23931036,24543545>, r=85569998
pos=<73168357,46751267,32442956>, r=70945437
pos=<41949878,156504068,-18954149>, r=64756163
pos=<102930204,35343248,37104041>, r=84638379
pos=<62480158,37333867,21753855>, r=61529451
pos=<43894718,43692479,63807540>, r=55461021
pos=<137734844,21573597,43989106>, r=98788073
pos=<63730722,57074855,43620327>, r=60654019
pos=<83015911,24807864,3735239>, r=87557358
pos=<69634519,40706124,38411287>, r=55398196
pos=<52562114,27785684,-15676002>, r=79492557
pos=<20520103,15854086,26002730>, r=53545185
pos=<87434870,18437719,38414706>, r=50926615
pos=<57755577,16647886,-28634221>, r=86506431
pos=<43133634,48934212,37068935>, r=52945543
pos=<57033158,78392283,59521728>, r=86057939
pos=<102991185,29588343,42694512>, r=73353901
pos=<108102397,29068005,27666063>, r=92973074
pos=<9348572,17282316,33605027>, r=58542486
pos=<143592360,15779409,44632933>, r=98207640
pos=<-1647028,43767597,39571986>, r=90056565
pos=<60526569,46081547,31524058>, r=58552839
pos=<82935099,18040707,31699777>, r=52744784
pos=<48323466,13417331,13716841>, r=72430650
pos=<45773594,27297986,14975779>, r=50762360
pos=<24097804,53090148,29390826>, r=83815291
pos=<25005107,11325324,44788022>, r=68812043
pos=<105404305,16729309,36466602>, r=69135756
pos=<74634700,28685680,-1644353>, r=88433471
pos=<27048089,46671968,29808821>, r=74028909
pos=<58330408,114784165,-56072901>, r=69651104
pos=<98670748,16040227,17339727>, r=80840147
pos=<58048812,36006113,83397014>, r=68562891
pos=<74014047,45988260,35623744>, r=67847541
pos=<71568949,-13314586,37419374>, r=55608560
pos=<59375646,24636541,9089410>, r=58391622
pos=<138086403,19876935,50066719>, r=99140816
pos=<98023645,14943492,16667203>, r=79768666
pos=<52491721,59202118,28220497>, r=66942282
pos=<90777106,57123923,37312202>, r=94057562
pos=<113219705,23287968,43704790>, r=76271626
pos=<66618416,48429695,8543343>, r=89973513
pos=<-10351135,33197516,62671553>, r=98076092
pos=<53630033,20687772,43709526>, r=54032535
pos=<64859508,44595359,41296301>, r=51627349
pos=<78205322,31496284,13487017>, r=79683666
pos=<104655644,14589094,27637230>, r=75076741
pos=<77541983,17024291,96730063>, r=82407123
pos=<46216339,-21583971,66314537>, r=58213444
pos=<83275281,15995716,15709165>, r=67030735
pos=<55595202,15673921,27769253>, r=63393522
pos=<98681204,24215772,37076499>, r=69289270
pos=<75136995,-9362540,52474867>, r=52760677
pos=<63600285,57212426,11963503>, r=92318114
pos=<105866093,-405007,35224527>, r=79190897
pos=<29698311,14979861,13235314>, r=56259978
pos=<110328170,38335241,52657644>, r=92431876
pos=<88542421,-870088,13207367>, r=84349456
pos=<74640267,22206239,14645795>, r=65669532
pos=<79065600,16087561,18528157>, r=60093859
pos=<111823392,19903352,23089223>, r=92106547
pos=<98366966,20052988,49891348>, r=59422141
pos=<29682182,31506604,34545446>, r=51492791
pos=<120848541,16730806,44774435>, r=76273795
pos=<57458216,50046962,30808309>, r=60165921
pos=<107663575,36525510,35923096>, r=91734717
pos=<64195559,32116535,77982552>, r=65405350
pos=<83512336,18917361,30750618>, r=55147891
pos=<80721760,40690424,7152397>, r=97728592
pos=<92294258,14234030,20416605>, r=69580495
pos=<68073349,64458816,37581438>, r=78419487
pos=<85524993,37438019,25046423>, r=81385663
pos=<86541195,24280626,41918996>, r=52371589
pos=<-13645389,15473382,22641566>, r=90690964
pos=<44366724,100351984,42967204>, r=97231920
pos=<86060439,17194021,-3770824>, r=90494079
pos=<30049658,-5175494,25937638>, r=58077580
pos=<107047197,22562690,44858175>, r=68220453
pos=<127530824,27391996,52516364>, r=98550161
pos=<64602574,3500377,-7797016>, r=77043638
pos=<60270940,19412849,41872685>, r=88511219
pos=<155526325,48371118,-26973138>, r=85591169
pos=<107697033,52594463,-59041716>, r=74771672
pos=<52298403,27693100,-30556065>, r=94016699
pos=<114608699,14112690,44347121>, r=67843100
pos=<72416922,57138051,19381835>, r=93641875
pos=<95470538,-19749813,59828631>, r=90835630
pos=<64854541,45323496,-4318783>, r=97965570
pos=<114336015,10526848,43407780>, r=68546129
pos=<44846695,34904424,38850487>, r=95051622
pos=<91656904,16345566,39603921>, r=51867354
pos=<78594244,43166462,82913458>, r=95785616
pos=<123125125,9804601,45069352>, r=76395474
pos=<107657632,23343797,44704438>, r=69765825
pos=<110581427,19616264,47348915>, r=68657336
pos=<69661168,31877975,33420581>, r=51587392
pos=<94610218,13960801,64886899>, r=64568692
pos=<69308901,57655769,38379289>, r=72054167
pos=<135755923,10617817,38172368>, r=95110029
pos=<86320905,59403445,35250752>, r=93942475
pos=<118396084,30078667,41839960>, r=90103776
pos=<82277876,17504638,28419641>, r=54831707
pos=<113851054,24701483,37906662>, r=84114888
pos=<105310453,19737919,38025470>, r=70491908
pos=<130611957,7501593,41030202>, r=90224528
pos=<65033300,78643636,50422027>, r=85209865
pos=<33138251,17525027,37435621>, r=74580514
pos=<96100212,30444455,25703008>, r=84310420
pos=<27145406,44942359,36724008>, r=65286818
pos=<65649299,44984252,27469621>, r=66633046
pos=<64002938,67553935,75525638>, r=98193246
pos=<93514191,16501448,43454650>, r=50029750
pos=<84850566,3822237,32273082>, r=56899535
pos=<79295673,23091753,4035821>, r=81820737
pos=<113842735,15863962,49866858>, r=70684260
pos=<62979159,19236013,11046588>, r=54637318
pos=<70378058,38120569,23398679>, r=68568739
pos=<77376105,57342410,20346141>, r=97841172
pos=<37868298,22228217,-12332506>, r=80906394
pos=<68207397,60961438,30142085>, r=82495737
pos=<69858320,18729014,5445097>, r=66611048
pos=<9116764,10344026,53693553>, r=50764356
pos=<39005253,55520872,36722372>, r=64007061
pos=<17794858,-6628512,7640246>, r=90083051
pos=<85740536,26507750,51400594>, r=54759599
pos=<84208747,35340884,25583462>, r=77434911
pos=<87271504,19943739,20752408>, r=69931564
pos=<96088602,14281014,48787654>, r=50268026
pos=<27511816,40332464,6060608>, r=90973833
pos=<65462523,-36697315,20913509>, r=89390698
pos=<88573282,6738266,20779889>, r=69199413
pos=<59865925,39227558,25266094>, r=57296238
pos=<81227330,33431916,56973852>, r=62743804
pos=<68366501,16547559,14647200>, r=53735619
pos=<54230681,33414850,76455668>, r=55212004
pos=<59541777,14580425,49151658>, r=72625643
pos=<68098093,55194464,33122908>, r=73638498
pos=<10118173,26785894,38943474>, r=61938305
pos=<23416973,8660001,25767066>, r=51045270
pos=<22184672,44730909,11787630>, r=94972351
pos=<23839890,31017358,16049191>, r=75342069
pos=<81054139,20266304,13433299>, r=71355888
pos=<71626734,38408998,41533069>, r=51971530
pos=<89478444,32502556,38338114>, r=67111625
pos=<76389485,35414383,59701778>, r=62616358
pos=<91422364,30853471,14672017>, r=91072657
pos=<97715651,3633649,41305952>, r=60920935
pos=<98302426,566943,44455286>, r=61424508
pos=<87972808,16057009,74031530>, r=69172050
pos=<104315590,30205049,42996111>, r=74993895
pos=<7843002,28260225,57714932>, r=69987942
pos=<70271568,42229743,51449522>, r=55061712
pos=<97481885,18734492,35228517>, r=64456781
pos=<93841182,-2752730,34858124>, r=69880597
pos=<73292477,21940254,19166892>, r=59534575
pos=<45448246,27863328,-10504487>, r=77133658
pos=<21056077,17443631,-17767603>, r=98368965
pos=<69249061,13430750,35948045>, r=58685625
pos=<82363267,66412107,47639253>, r=87525334
pos=<103724932,17569482,50836002>, r=63241196
pos=<94743752,13539919,38313097>, r=53439563
pos=<-1208391,41560402,41887717>, r=85094985
pos=<2242162,19855988,37643999>, r=64183571
pos=<108529318,34126090,39249978>, r=86874288
pos=<104263315,20950911,30967568>, r=77715409
pos=<101782231,41882974,39241307>, r=87892742
pos=<88948941,21893456,20971406>, r=73339767
pos=<97674914,9295684,57468225>, r=61633779
pos=<52033323,19539936,90961981>, r=53645982
pos=<72012599,47549588,36801296>, r=66229633
pos=<85911193,46406475,36087876>, r=79698630
pos=<83201681,67905359,49672601>, r=91890385
pos=<110140280,17764489,35359837>, r=76013827
pos=<76000089,23518895,20166406>, r=62821306
pos=<88784014,23131762,30867583>, r=64517040
pos=<87103475,32997307,32991213>, r=70578365
pos=<8313690,20263541,35282625>, r=60881058
pos=<118506095,20495671,42504099>, r=79966396
pos=<105828823,21653771,33583579>, r=77367788
pos=<79882555,6386659,12248677>, r=69391612
pos=<44065053,1171023,-2206058>, r=65859440
pos=<93899687,16799293,34733156>, r=59434573
pos=<76120150,68727389,29393654>, r=98922623
pos=<24794676,-294963,22172063>, r=62217542
pos=<105606508,-12698036,38804880>, r=87644065
pos=<149023157,20079454,-58121104>, r=96595437
pos=<15014094,20436607,34582765>, r=55053525
pos=<75581653,14125008,72078023>, r=52895402
pos=<78759177,24062440,70435398>, r=64368175
pos=<88908302,13808547,27190095>, r=58995559
pos=<135130974,20492550,42963912>, r=96129007
pos=<111832572,16345757,41911698>, r=69735380
pos=<92723116,44304319,29118289>, r=91377952
pos=<-21612986,-435582,34358465>, r=96579424
pos=<69914320,22186526,84117667>, r=67329280
pos=<10825182,24223567,31977094>, r=65635711
pos=<125021022,14253079,48761688>, r=79146635
pos=<53787124,14030357,29451273>, r=68747561
pos=<73603349,-18919546,77824411>, r=86133587
pos=<8803856,3778601,39670106>, r=56636756
pos=<131833249,19137425,47238926>, r=89320349
pos=<127096722,16870418,47183249>, r=82261369
pos=<65771237,15933994,-17945635>, r=83119767
pos=<129800653,16549371,42816551>, r=87002357
pos=<73012023,32203096,17286028>, r=71398123
pos=<85331745,66634021,55698321>, r=98775020
pos=<3975073,15434520,36729664>, r=58943957
pos=<76744678,-19473941,28802127>, r=75560873
pos=<97046282,27688293,33628334>, r=74574981
pos=<78021809,21416712,105411342>, r=95960754
pos=<70174100,47832147,29589031>, r=71885946
pos=<53243173,16479574,16583706>, r=97191800
pos=<62675854,41357258,61502222>, r=56646100
pos=<10398405,30103521,51737049>, r=63297943
pos=<62789936,37579126,31318087>, r=52519744
pos=<80646022,50390362,29100737>, r=85404405
pos=<75059823,-3397631,-5855714>, r=92457535
pos=<-26876547,26071980,54067049>, r=98871293
pos=<94348553,13560168,39860824>, r=51516814
pos=<70355332,25236589,27287999>, r=51772658
pos=<9984512,17339484,9801485>, r=81767309
pos=<105552760,13377201,55083427>, r=65124092
pos=<76047874,-6194276,38463922>, r=51922646
pos=<56479243,18000824,50728186>, r=84528342
pos=<71894991,47704103,84715882>, r=95425758
pos=<9457595,64238772,43347552>, r=95647462
pos=<69898271,71459737,42769342>, r=82057449
pos=<64151267,26165333,73057428>, r=54484787
pos=<66031500,48985903,70945515>, r=77073892
pos=<62035457,4482782,-29392371>, r=95089803
pos=<64624210,79720253,34723156>, r=93090040
pos=<112152682,27907103,57932441>, r=89103100
pos=<60750946,2586567,15050454>, r=51258468
pos=<80634960,32640080,37031696>, r=59712112
pos=<57808402,86153331,39423147>, r=88007500
pos=<70818888,43398822,34489718>, r=63196720
pos=<68090318,27430690,-10278716>, r=89268549
pos=<87890312,17996875,33238638>, r=56117353
pos=<44413922,31891701,44564394>, r=94607110
pos=<-27692985,18387215,39538274>, r=90756009
pos=<47066581,53965612,27711250>, r=63401540
pos=<95719838,34436228,28489267>, r=85135992
pos=<-12471275,14645614,45067839>, r=66262794
pos=<60738379,16592356,33988421>, r=79884260
pos=<96326119,5728018,42788895>, r=55953511
pos=<83907152,-10700839,14372026>, r=88380290
pos=<109423924,23037116,75736387>, r=99308127
pos=<31578359,-27417543,32628087>, r=72100454
pos=<78512642,39729876,37461103>, r=64250145
pos=<96926110,32512942,26709703>, r=86198131
pos=<136106094,24310044,45004652>, r=98880595
pos=<101078372,48784683,41810964>, r=91520964
pos=<86206880,-22092154,19953965>, r=96489535
pos=<81427199,30406859,38124910>, r=57177955
pos=<123680256,20349363,42988596>, r=84509815
pos=<11994475,31211035,44112943>, r=59317362
pos=<69541980,42411019,28060638>, r=67361093
pos=<18018824,19545861,33105306>, r=52635496
pos=<69092489,16558452,41126433>, r=51187189
pos=<65063790,-16268688,24495629>, r=64981137
pos=<97448057,34132770,36427044>, r=78622515
pos=<94859517,37403832,66435426>, r=89809493
pos=<88595890,29830949,57521005>, r=67058554
pos=<76972562,25538240,22837916>, r=63141778
pos=<108214600,34601528,61118998>, r=95045880
pos=<51848130,38004319,12700821>, r=60620456
pos=<70151686,46463009,23084904>, r=76998527
pos=<1479860,27508266,35045530>, r=75196637
pos=<71533662,5246549,-15619408>, r=90050932
pos=<61585126,-21429698,25366413>, r=65792791
pos=<44250844,48388098,23828196>, r=64523005
pos=<70268621,15863388,-29825644>, r=99426397
pos=<72944088,62212490,44214235>, r=74411135
pos=<65205412,6844511,-9872084>, r=76377320
pos=<98378311,21213552,31447950>, r=71612707
pos=<86532715,21669978,35142455>, r=56529076
pos=<59513198,75710409,22364255>, r=96328110
pos=<108573090,15275777,11967972>, r=95349627
pos=<76451088,17816660,-2830425>, r=80567393
pos=<-20979332,23290461,32130450>, r=96353089
pos=<167472890,28321420,-28628457>, r=51800698
pos=<126844291,20559148,41572491>, r=89299685
pos=<104381467,-15359,49606197>, r=69789997
pos=<72215311,42128830,30405803>, r=67407361
pos=<60921916,21482471,38495006>, r=97223018
pos=<97413729,17645063,41785452>, r=56742069
pos=<41794614,59529953,35967787>, r=65981295
pos=<55112593,-19101227,-12478192>, r=94836390
pos=<53763415,-17694738,20745956>, r=58856661
pos=<97433025,20709014,44378903>, r=57231982
pos=<54833398,70844932,42561701>, r=66585419
pos=<6735877,17243311,72860646>, r=75223926
pos=<65035825,15796737,55942657>, r=95875884
pos=<58631744,37720962,67416481>, r=54879925
pos=<76548353,-4436543,59824784>, r=56596078
pos=<29902114,75401238,36162686>, r=93550277
pos=<4306799,19057972,55580414>, r=62187302
pos=<77788277,-36286588,69739194>, r=99600371
pos=<62069812,21846020,39048668>, r=98895350
pos=<55789655,-50662209,28539717>, r=86056440
pos=<57852930,-6240314,-21507089>, r=93744847
pos=<85853628,22373244,70020215>, r=69357814
pos=<68558182,36883167,38469454>, r=50440630
pos=<91844168,13857117,36011460>, r=53158553
pos=<-79773251,-16608784,-7261838>, r=64379316
pos=<53851737,16320556,107113329>, r=68396335
pos=<96355811,39006972,42748737>, r=76082810
pos=<61304521,13899542,51145101>, r=87293939
pos=<-33027734,16129088,43484391>, r=89886343
pos=<62891864,16852512,-4456638>, r=67669834
pos=<-31728430,13454094,47664051>, r=84702348
pos=<66323108,80722929,41554146>, r=88960737
pos=<131483327,8478771,44387297>, r=86761808
pos=<65463135,27516385,19755668>, r=56692600
pos=<68836614,47802794,34075021>, r=66033116
pos=<93087880,20601381,66940941>, r=71741655
pos=<58556801,44076131,2148137>, r=83953625
pos=<53789613,2722281,69620824>, r=52267250