-
Notifications
You must be signed in to change notification settings - Fork 0
/
WorkerMarchingCube.js
4662 lines (4633 loc) · 767 KB
/
WorkerMarchingCube.js
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
var MarchingCubes;
(function() {
var edgeTable = [
0x0 , 0x109, 0x203, 0x30a, 0x406, 0x50f, 0x605, 0x70c,
0x80c, 0x905, 0xa0f, 0xb06, 0xc0a, 0xd03, 0xe09, 0xf00,
0x190, 0x99 , 0x393, 0x29a, 0x596, 0x49f, 0x795, 0x69c,
0x99c, 0x895, 0xb9f, 0xa96, 0xd9a, 0xc93, 0xf99, 0xe90,
0x230, 0x339, 0x33 , 0x13a, 0x636, 0x73f, 0x435, 0x53c,
0xa3c, 0xb35, 0x83f, 0x936, 0xe3a, 0xf33, 0xc39, 0xd30,
0x3a0, 0x2a9, 0x1a3, 0xaa , 0x7a6, 0x6af, 0x5a5, 0x4ac,
0xbac, 0xaa5, 0x9af, 0x8a6, 0xfaa, 0xea3, 0xda9, 0xca0,
0x460, 0x569, 0x663, 0x76a, 0x66 , 0x16f, 0x265, 0x36c,
0xc6c, 0xd65, 0xe6f, 0xf66, 0x86a, 0x963, 0xa69, 0xb60,
0x5f0, 0x4f9, 0x7f3, 0x6fa, 0x1f6, 0xff , 0x3f5, 0x2fc,
0xdfc, 0xcf5, 0xfff, 0xef6, 0x9fa, 0x8f3, 0xbf9, 0xaf0,
0x650, 0x759, 0x453, 0x55a, 0x256, 0x35f, 0x55 , 0x15c,
0xe5c, 0xf55, 0xc5f, 0xd56, 0xa5a, 0xb53, 0x859, 0x950,
0x7c0, 0x6c9, 0x5c3, 0x4ca, 0x3c6, 0x2cf, 0x1c5, 0xcc ,
0xfcc, 0xec5, 0xdcf, 0xcc6, 0xbca, 0xac3, 0x9c9, 0x8c0,
0x8c0, 0x9c9, 0xac3, 0xbca, 0xcc6, 0xdcf, 0xec5, 0xfcc,
0xcc , 0x1c5, 0x2cf, 0x3c6, 0x4ca, 0x5c3, 0x6c9, 0x7c0,
0x950, 0x859, 0xb53, 0xa5a, 0xd56, 0xc5f, 0xf55, 0xe5c,
0x15c, 0x55 , 0x35f, 0x256, 0x55a, 0x453, 0x759, 0x650,
0xaf0, 0xbf9, 0x8f3, 0x9fa, 0xef6, 0xfff, 0xcf5, 0xdfc,
0x2fc, 0x3f5, 0xff , 0x1f6, 0x6fa, 0x7f3, 0x4f9, 0x5f0,
0xb60, 0xa69, 0x963, 0x86a, 0xf66, 0xe6f, 0xd65, 0xc6c,
0x36c, 0x265, 0x16f, 0x66 , 0x76a, 0x663, 0x569, 0x460,
0xca0, 0xda9, 0xea3, 0xfaa, 0x8a6, 0x9af, 0xaa5, 0xbac,
0x4ac, 0x5a5, 0x6af, 0x7a6, 0xaa , 0x1a3, 0x2a9, 0x3a0,
0xd30, 0xc39, 0xf33, 0xe3a, 0x936, 0x83f, 0xb35, 0xa3c,
0x53c, 0x435, 0x73f, 0x636, 0x13a, 0x33 , 0x339, 0x230,
0xe90, 0xf99, 0xc93, 0xd9a, 0xa96, 0xb9f, 0x895, 0x99c,
0x69c, 0x795, 0x49f, 0x596, 0x29a, 0x393, 0x99 , 0x190,
0xf00, 0xe09, 0xd03, 0xc0a, 0xb06, 0xa0f, 0x905, 0x80c,
0x70c, 0x605, 0x50f, 0x406, 0x30a, 0x203, 0x109, 0x0];
var triTable =
[[-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[0, 8, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[0, 1, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[1, 8, 3, 9, 8, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[1, 2, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[0, 8, 3, 1, 2, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[9, 2, 10, 0, 2, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[2, 8, 3, 2, 10, 8, 10, 9, 8, -1, -1, -1, -1, -1, -1, -1],
[3, 11, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[0, 11, 2, 8, 11, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[1, 9, 0, 2, 3, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[1, 11, 2, 1, 9, 11, 9, 8, 11, -1, -1, -1, -1, -1, -1, -1],
[3, 10, 1, 11, 10, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[0, 10, 1, 0, 8, 10, 8, 11, 10, -1, -1, -1, -1, -1, -1, -1],
[3, 9, 0, 3, 11, 9, 11, 10, 9, -1, -1, -1, -1, -1, -1, -1],
[9, 8, 10, 10, 8, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[4, 7, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[4, 3, 0, 7, 3, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[0, 1, 9, 8, 4, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[4, 1, 9, 4, 7, 1, 7, 3, 1, -1, -1, -1, -1, -1, -1, -1],
[1, 2, 10, 8, 4, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[3, 4, 7, 3, 0, 4, 1, 2, 10, -1, -1, -1, -1, -1, -1, -1],
[9, 2, 10, 9, 0, 2, 8, 4, 7, -1, -1, -1, -1, -1, -1, -1],
[2, 10, 9, 2, 9, 7, 2, 7, 3, 7, 9, 4, -1, -1, -1, -1],
[8, 4, 7, 3, 11, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[11, 4, 7, 11, 2, 4, 2, 0, 4, -1, -1, -1, -1, -1, -1, -1],
[9, 0, 1, 8, 4, 7, 2, 3, 11, -1, -1, -1, -1, -1, -1, -1],
[4, 7, 11, 9, 4, 11, 9, 11, 2, 9, 2, 1, -1, -1, -1, -1],
[3, 10, 1, 3, 11, 10, 7, 8, 4, -1, -1, -1, -1, -1, -1, -1],
[1, 11, 10, 1, 4, 11, 1, 0, 4, 7, 11, 4, -1, -1, -1, -1],
[4, 7, 8, 9, 0, 11, 9, 11, 10, 11, 0, 3, -1, -1, -1, -1],
[4, 7, 11, 4, 11, 9, 9, 11, 10, -1, -1, -1, -1, -1, -1, -1],
[9, 5, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[9, 5, 4, 0, 8, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[0, 5, 4, 1, 5, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[8, 5, 4, 8, 3, 5, 3, 1, 5, -1, -1, -1, -1, -1, -1, -1],
[1, 2, 10, 9, 5, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[3, 0, 8, 1, 2, 10, 4, 9, 5, -1, -1, -1, -1, -1, -1, -1],
[5, 2, 10, 5, 4, 2, 4, 0, 2, -1, -1, -1, -1, -1, -1, -1],
[2, 10, 5, 3, 2, 5, 3, 5, 4, 3, 4, 8, -1, -1, -1, -1],
[9, 5, 4, 2, 3, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[0, 11, 2, 0, 8, 11, 4, 9, 5, -1, -1, -1, -1, -1, -1, -1],
[0, 5, 4, 0, 1, 5, 2, 3, 11, -1, -1, -1, -1, -1, -1, -1],
[2, 1, 5, 2, 5, 8, 2, 8, 11, 4, 8, 5, -1, -1, -1, -1],
[10, 3, 11, 10, 1, 3, 9, 5, 4, -1, -1, -1, -1, -1, -1, -1],
[4, 9, 5, 0, 8, 1, 8, 10, 1, 8, 11, 10, -1, -1, -1, -1],
[5, 4, 0, 5, 0, 11, 5, 11, 10, 11, 0, 3, -1, -1, -1, -1],
[5, 4, 8, 5, 8, 10, 10, 8, 11, -1, -1, -1, -1, -1, -1, -1],
[9, 7, 8, 5, 7, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[9, 3, 0, 9, 5, 3, 5, 7, 3, -1, -1, -1, -1, -1, -1, -1],
[0, 7, 8, 0, 1, 7, 1, 5, 7, -1, -1, -1, -1, -1, -1, -1],
[1, 5, 3, 3, 5, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[9, 7, 8, 9, 5, 7, 10, 1, 2, -1, -1, -1, -1, -1, -1, -1],
[10, 1, 2, 9, 5, 0, 5, 3, 0, 5, 7, 3, -1, -1, -1, -1],
[8, 0, 2, 8, 2, 5, 8, 5, 7, 10, 5, 2, -1, -1, -1, -1],
[2, 10, 5, 2, 5, 3, 3, 5, 7, -1, -1, -1, -1, -1, -1, -1],
[7, 9, 5, 7, 8, 9, 3, 11, 2, -1, -1, -1, -1, -1, -1, -1],
[9, 5, 7, 9, 7, 2, 9, 2, 0, 2, 7, 11, -1, -1, -1, -1],
[2, 3, 11, 0, 1, 8, 1, 7, 8, 1, 5, 7, -1, -1, -1, -1],
[11, 2, 1, 11, 1, 7, 7, 1, 5, -1, -1, -1, -1, -1, -1, -1],
[9, 5, 8, 8, 5, 7, 10, 1, 3, 10, 3, 11, -1, -1, -1, -1],
[5, 7, 0, 5, 0, 9, 7, 11, 0, 1, 0, 10, 11, 10, 0, -1],
[11, 10, 0, 11, 0, 3, 10, 5, 0, 8, 0, 7, 5, 7, 0, -1],
[11, 10, 5, 7, 11, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[10, 6, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[0, 8, 3, 5, 10, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[9, 0, 1, 5, 10, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[1, 8, 3, 1, 9, 8, 5, 10, 6, -1, -1, -1, -1, -1, -1, -1],
[1, 6, 5, 2, 6, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[1, 6, 5, 1, 2, 6, 3, 0, 8, -1, -1, -1, -1, -1, -1, -1],
[9, 6, 5, 9, 0, 6, 0, 2, 6, -1, -1, -1, -1, -1, -1, -1],
[5, 9, 8, 5, 8, 2, 5, 2, 6, 3, 2, 8, -1, -1, -1, -1],
[2, 3, 11, 10, 6, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[11, 0, 8, 11, 2, 0, 10, 6, 5, -1, -1, -1, -1, -1, -1, -1],
[0, 1, 9, 2, 3, 11, 5, 10, 6, -1, -1, -1, -1, -1, -1, -1],
[5, 10, 6, 1, 9, 2, 9, 11, 2, 9, 8, 11, -1, -1, -1, -1],
[6, 3, 11, 6, 5, 3, 5, 1, 3, -1, -1, -1, -1, -1, -1, -1],
[0, 8, 11, 0, 11, 5, 0, 5, 1, 5, 11, 6, -1, -1, -1, -1],
[3, 11, 6, 0, 3, 6, 0, 6, 5, 0, 5, 9, -1, -1, -1, -1],
[6, 5, 9, 6, 9, 11, 11, 9, 8, -1, -1, -1, -1, -1, -1, -1],
[5, 10, 6, 4, 7, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[4, 3, 0, 4, 7, 3, 6, 5, 10, -1, -1, -1, -1, -1, -1, -1],
[1, 9, 0, 5, 10, 6, 8, 4, 7, -1, -1, -1, -1, -1, -1, -1],
[10, 6, 5, 1, 9, 7, 1, 7, 3, 7, 9, 4, -1, -1, -1, -1],
[6, 1, 2, 6, 5, 1, 4, 7, 8, -1, -1, -1, -1, -1, -1, -1],
[1, 2, 5, 5, 2, 6, 3, 0, 4, 3, 4, 7, -1, -1, -1, -1],
[8, 4, 7, 9, 0, 5, 0, 6, 5, 0, 2, 6, -1, -1, -1, -1],
[7, 3, 9, 7, 9, 4, 3, 2, 9, 5, 9, 6, 2, 6, 9, -1],
[3, 11, 2, 7, 8, 4, 10, 6, 5, -1, -1, -1, -1, -1, -1, -1],
[5, 10, 6, 4, 7, 2, 4, 2, 0, 2, 7, 11, -1, -1, -1, -1],
[0, 1, 9, 4, 7, 8, 2, 3, 11, 5, 10, 6, -1, -1, -1, -1],
[9, 2, 1, 9, 11, 2, 9, 4, 11, 7, 11, 4, 5, 10, 6, -1],
[8, 4, 7, 3, 11, 5, 3, 5, 1, 5, 11, 6, -1, -1, -1, -1],
[5, 1, 11, 5, 11, 6, 1, 0, 11, 7, 11, 4, 0, 4, 11, -1],
[0, 5, 9, 0, 6, 5, 0, 3, 6, 11, 6, 3, 8, 4, 7, -1],
[6, 5, 9, 6, 9, 11, 4, 7, 9, 7, 11, 9, -1, -1, -1, -1],
[10, 4, 9, 6, 4, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[4, 10, 6, 4, 9, 10, 0, 8, 3, -1, -1, -1, -1, -1, -1, -1],
[10, 0, 1, 10, 6, 0, 6, 4, 0, -1, -1, -1, -1, -1, -1, -1],
[8, 3, 1, 8, 1, 6, 8, 6, 4, 6, 1, 10, -1, -1, -1, -1],
[1, 4, 9, 1, 2, 4, 2, 6, 4, -1, -1, -1, -1, -1, -1, -1],
[3, 0, 8, 1, 2, 9, 2, 4, 9, 2, 6, 4, -1, -1, -1, -1],
[0, 2, 4, 4, 2, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[8, 3, 2, 8, 2, 4, 4, 2, 6, -1, -1, -1, -1, -1, -1, -1],
[10, 4, 9, 10, 6, 4, 11, 2, 3, -1, -1, -1, -1, -1, -1, -1],
[0, 8, 2, 2, 8, 11, 4, 9, 10, 4, 10, 6, -1, -1, -1, -1],
[3, 11, 2, 0, 1, 6, 0, 6, 4, 6, 1, 10, -1, -1, -1, -1],
[6, 4, 1, 6, 1, 10, 4, 8, 1, 2, 1, 11, 8, 11, 1, -1],
[9, 6, 4, 9, 3, 6, 9, 1, 3, 11, 6, 3, -1, -1, -1, -1],
[8, 11, 1, 8, 1, 0, 11, 6, 1, 9, 1, 4, 6, 4, 1, -1],
[3, 11, 6, 3, 6, 0, 0, 6, 4, -1, -1, -1, -1, -1, -1, -1],
[6, 4, 8, 11, 6, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[7, 10, 6, 7, 8, 10, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1],
[0, 7, 3, 0, 10, 7, 0, 9, 10, 6, 7, 10, -1, -1, -1, -1],
[10, 6, 7, 1, 10, 7, 1, 7, 8, 1, 8, 0, -1, -1, -1, -1],
[10, 6, 7, 10, 7, 1, 1, 7, 3, -1, -1, -1, -1, -1, -1, -1],
[1, 2, 6, 1, 6, 8, 1, 8, 9, 8, 6, 7, -1, -1, -1, -1],
[2, 6, 9, 2, 9, 1, 6, 7, 9, 0, 9, 3, 7, 3, 9, -1],
[7, 8, 0, 7, 0, 6, 6, 0, 2, -1, -1, -1, -1, -1, -1, -1],
[7, 3, 2, 6, 7, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[2, 3, 11, 10, 6, 8, 10, 8, 9, 8, 6, 7, -1, -1, -1, -1],
[2, 0, 7, 2, 7, 11, 0, 9, 7, 6, 7, 10, 9, 10, 7, -1],
[1, 8, 0, 1, 7, 8, 1, 10, 7, 6, 7, 10, 2, 3, 11, -1],
[11, 2, 1, 11, 1, 7, 10, 6, 1, 6, 7, 1, -1, -1, -1, -1],
[8, 9, 6, 8, 6, 7, 9, 1, 6, 11, 6, 3, 1, 3, 6, -1],
[0, 9, 1, 11, 6, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[7, 8, 0, 7, 0, 6, 3, 11, 0, 11, 6, 0, -1, -1, -1, -1],
[7, 11, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[7, 6, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[3, 0, 8, 11, 7, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[0, 1, 9, 11, 7, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[8, 1, 9, 8, 3, 1, 11, 7, 6, -1, -1, -1, -1, -1, -1, -1],
[10, 1, 2, 6, 11, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[1, 2, 10, 3, 0, 8, 6, 11, 7, -1, -1, -1, -1, -1, -1, -1],
[2, 9, 0, 2, 10, 9, 6, 11, 7, -1, -1, -1, -1, -1, -1, -1],
[6, 11, 7, 2, 10, 3, 10, 8, 3, 10, 9, 8, -1, -1, -1, -1],
[7, 2, 3, 6, 2, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[7, 0, 8, 7, 6, 0, 6, 2, 0, -1, -1, -1, -1, -1, -1, -1],
[2, 7, 6, 2, 3, 7, 0, 1, 9, -1, -1, -1, -1, -1, -1, -1],
[1, 6, 2, 1, 8, 6, 1, 9, 8, 8, 7, 6, -1, -1, -1, -1],
[10, 7, 6, 10, 1, 7, 1, 3, 7, -1, -1, -1, -1, -1, -1, -1],
[10, 7, 6, 1, 7, 10, 1, 8, 7, 1, 0, 8, -1, -1, -1, -1],
[0, 3, 7, 0, 7, 10, 0, 10, 9, 6, 10, 7, -1, -1, -1, -1],
[7, 6, 10, 7, 10, 8, 8, 10, 9, -1, -1, -1, -1, -1, -1, -1],
[6, 8, 4, 11, 8, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[3, 6, 11, 3, 0, 6, 0, 4, 6, -1, -1, -1, -1, -1, -1, -1],
[8, 6, 11, 8, 4, 6, 9, 0, 1, -1, -1, -1, -1, -1, -1, -1],
[9, 4, 6, 9, 6, 3, 9, 3, 1, 11, 3, 6, -1, -1, -1, -1],
[6, 8, 4, 6, 11, 8, 2, 10, 1, -1, -1, -1, -1, -1, -1, -1],
[1, 2, 10, 3, 0, 11, 0, 6, 11, 0, 4, 6, -1, -1, -1, -1],
[4, 11, 8, 4, 6, 11, 0, 2, 9, 2, 10, 9, -1, -1, -1, -1],
[10, 9, 3, 10, 3, 2, 9, 4, 3, 11, 3, 6, 4, 6, 3, -1],
[8, 2, 3, 8, 4, 2, 4, 6, 2, -1, -1, -1, -1, -1, -1, -1],
[0, 4, 2, 4, 6, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[1, 9, 0, 2, 3, 4, 2, 4, 6, 4, 3, 8, -1, -1, -1, -1],
[1, 9, 4, 1, 4, 2, 2, 4, 6, -1, -1, -1, -1, -1, -1, -1],
[8, 1, 3, 8, 6, 1, 8, 4, 6, 6, 10, 1, -1, -1, -1, -1],
[10, 1, 0, 10, 0, 6, 6, 0, 4, -1, -1, -1, -1, -1, -1, -1],
[4, 6, 3, 4, 3, 8, 6, 10, 3, 0, 3, 9, 10, 9, 3, -1],
[10, 9, 4, 6, 10, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[4, 9, 5, 7, 6, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[0, 8, 3, 4, 9, 5, 11, 7, 6, -1, -1, -1, -1, -1, -1, -1],
[5, 0, 1, 5, 4, 0, 7, 6, 11, -1, -1, -1, -1, -1, -1, -1],
[11, 7, 6, 8, 3, 4, 3, 5, 4, 3, 1, 5, -1, -1, -1, -1],
[9, 5, 4, 10, 1, 2, 7, 6, 11, -1, -1, -1, -1, -1, -1, -1],
[6, 11, 7, 1, 2, 10, 0, 8, 3, 4, 9, 5, -1, -1, -1, -1],
[7, 6, 11, 5, 4, 10, 4, 2, 10, 4, 0, 2, -1, -1, -1, -1],
[3, 4, 8, 3, 5, 4, 3, 2, 5, 10, 5, 2, 11, 7, 6, -1],
[7, 2, 3, 7, 6, 2, 5, 4, 9, -1, -1, -1, -1, -1, -1, -1],
[9, 5, 4, 0, 8, 6, 0, 6, 2, 6, 8, 7, -1, -1, -1, -1],
[3, 6, 2, 3, 7, 6, 1, 5, 0, 5, 4, 0, -1, -1, -1, -1],
[6, 2, 8, 6, 8, 7, 2, 1, 8, 4, 8, 5, 1, 5, 8, -1],
[9, 5, 4, 10, 1, 6, 1, 7, 6, 1, 3, 7, -1, -1, -1, -1],
[1, 6, 10, 1, 7, 6, 1, 0, 7, 8, 7, 0, 9, 5, 4, -1],
[4, 0, 10, 4, 10, 5, 0, 3, 10, 6, 10, 7, 3, 7, 10, -1],
[7, 6, 10, 7, 10, 8, 5, 4, 10, 4, 8, 10, -1, -1, -1, -1],
[6, 9, 5, 6, 11, 9, 11, 8, 9, -1, -1, -1, -1, -1, -1, -1],
[3, 6, 11, 0, 6, 3, 0, 5, 6, 0, 9, 5, -1, -1, -1, -1],
[0, 11, 8, 0, 5, 11, 0, 1, 5, 5, 6, 11, -1, -1, -1, -1],
[6, 11, 3, 6, 3, 5, 5, 3, 1, -1, -1, -1, -1, -1, -1, -1],
[1, 2, 10, 9, 5, 11, 9, 11, 8, 11, 5, 6, -1, -1, -1, -1],
[0, 11, 3, 0, 6, 11, 0, 9, 6, 5, 6, 9, 1, 2, 10, -1],
[11, 8, 5, 11, 5, 6, 8, 0, 5, 10, 5, 2, 0, 2, 5, -1],
[6, 11, 3, 6, 3, 5, 2, 10, 3, 10, 5, 3, -1, -1, -1, -1],
[5, 8, 9, 5, 2, 8, 5, 6, 2, 3, 8, 2, -1, -1, -1, -1],
[9, 5, 6, 9, 6, 0, 0, 6, 2, -1, -1, -1, -1, -1, -1, -1],
[1, 5, 8, 1, 8, 0, 5, 6, 8, 3, 8, 2, 6, 2, 8, -1],
[1, 5, 6, 2, 1, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[1, 3, 6, 1, 6, 10, 3, 8, 6, 5, 6, 9, 8, 9, 6, -1],
[10, 1, 0, 10, 0, 6, 9, 5, 0, 5, 6, 0, -1, -1, -1, -1],
[0, 3, 8, 5, 6, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[10, 5, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[11, 5, 10, 7, 5, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[11, 5, 10, 11, 7, 5, 8, 3, 0, -1, -1, -1, -1, -1, -1, -1],
[5, 11, 7, 5, 10, 11, 1, 9, 0, -1, -1, -1, -1, -1, -1, -1],
[10, 7, 5, 10, 11, 7, 9, 8, 1, 8, 3, 1, -1, -1, -1, -1],
[11, 1, 2, 11, 7, 1, 7, 5, 1, -1, -1, -1, -1, -1, -1, -1],
[0, 8, 3, 1, 2, 7, 1, 7, 5, 7, 2, 11, -1, -1, -1, -1],
[9, 7, 5, 9, 2, 7, 9, 0, 2, 2, 11, 7, -1, -1, -1, -1],
[7, 5, 2, 7, 2, 11, 5, 9, 2, 3, 2, 8, 9, 8, 2, -1],
[2, 5, 10, 2, 3, 5, 3, 7, 5, -1, -1, -1, -1, -1, -1, -1],
[8, 2, 0, 8, 5, 2, 8, 7, 5, 10, 2, 5, -1, -1, -1, -1],
[9, 0, 1, 5, 10, 3, 5, 3, 7, 3, 10, 2, -1, -1, -1, -1],
[9, 8, 2, 9, 2, 1, 8, 7, 2, 10, 2, 5, 7, 5, 2, -1],
[1, 3, 5, 3, 7, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[0, 8, 7, 0, 7, 1, 1, 7, 5, -1, -1, -1, -1, -1, -1, -1],
[9, 0, 3, 9, 3, 5, 5, 3, 7, -1, -1, -1, -1, -1, -1, -1],
[9, 8, 7, 5, 9, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[5, 8, 4, 5, 10, 8, 10, 11, 8, -1, -1, -1, -1, -1, -1, -1],
[5, 0, 4, 5, 11, 0, 5, 10, 11, 11, 3, 0, -1, -1, -1, -1],
[0, 1, 9, 8, 4, 10, 8, 10, 11, 10, 4, 5, -1, -1, -1, -1],
[10, 11, 4, 10, 4, 5, 11, 3, 4, 9, 4, 1, 3, 1, 4, -1],
[2, 5, 1, 2, 8, 5, 2, 11, 8, 4, 5, 8, -1, -1, -1, -1],
[0, 4, 11, 0, 11, 3, 4, 5, 11, 2, 11, 1, 5, 1, 11, -1],
[0, 2, 5, 0, 5, 9, 2, 11, 5, 4, 5, 8, 11, 8, 5, -1],
[9, 4, 5, 2, 11, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[2, 5, 10, 3, 5, 2, 3, 4, 5, 3, 8, 4, -1, -1, -1, -1],
[5, 10, 2, 5, 2, 4, 4, 2, 0, -1, -1, -1, -1, -1, -1, -1],
[3, 10, 2, 3, 5, 10, 3, 8, 5, 4, 5, 8, 0, 1, 9, -1],
[5, 10, 2, 5, 2, 4, 1, 9, 2, 9, 4, 2, -1, -1, -1, -1],
[8, 4, 5, 8, 5, 3, 3, 5, 1, -1, -1, -1, -1, -1, -1, -1],
[0, 4, 5, 1, 0, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[8, 4, 5, 8, 5, 3, 9, 0, 5, 0, 3, 5, -1, -1, -1, -1],
[9, 4, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[4, 11, 7, 4, 9, 11, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1],
[0, 8, 3, 4, 9, 7, 9, 11, 7, 9, 10, 11, -1, -1, -1, -1],
[1, 10, 11, 1, 11, 4, 1, 4, 0, 7, 4, 11, -1, -1, -1, -1],
[3, 1, 4, 3, 4, 8, 1, 10, 4, 7, 4, 11, 10, 11, 4, -1],
[4, 11, 7, 9, 11, 4, 9, 2, 11, 9, 1, 2, -1, -1, -1, -1],
[9, 7, 4, 9, 11, 7, 9, 1, 11, 2, 11, 1, 0, 8, 3, -1],
[11, 7, 4, 11, 4, 2, 2, 4, 0, -1, -1, -1, -1, -1, -1, -1],
[11, 7, 4, 11, 4, 2, 8, 3, 4, 3, 2, 4, -1, -1, -1, -1],
[2, 9, 10, 2, 7, 9, 2, 3, 7, 7, 4, 9, -1, -1, -1, -1],
[9, 10, 7, 9, 7, 4, 10, 2, 7, 8, 7, 0, 2, 0, 7, -1],
[3, 7, 10, 3, 10, 2, 7, 4, 10, 1, 10, 0, 4, 0, 10, -1],
[1, 10, 2, 8, 7, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[4, 9, 1, 4, 1, 7, 7, 1, 3, -1, -1, -1, -1, -1, -1, -1],
[4, 9, 1, 4, 1, 7, 0, 8, 1, 8, 7, 1, -1, -1, -1, -1],
[4, 0, 3, 7, 4, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[4, 8, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[9, 10, 8, 10, 11, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[3, 0, 9, 3, 9, 11, 11, 9, 10, -1, -1, -1, -1, -1, -1, -1],
[0, 1, 10, 0, 10, 8, 8, 10, 11, -1, -1, -1, -1, -1, -1, -1],
[3, 1, 10, 11, 3, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[1, 2, 11, 1, 11, 9, 9, 11, 8, -1, -1, -1, -1, -1, -1, -1],
[3, 0, 9, 3, 9, 11, 1, 2, 9, 2, 11, 9, -1, -1, -1, -1],
[0, 2, 11, 8, 0, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[3, 2, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[2, 3, 8, 2, 8, 10, 10, 8, 9, -1, -1, -1, -1, -1, -1, -1],
[9, 10, 2, 0, 9, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[2, 3, 8, 2, 8, 10, 0, 1, 8, 1, 10, 8, -1, -1, -1, -1],
[1, 10, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[1, 3, 8, 9, 1, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[0, 9, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[0, 3, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1]];
var abs = Math.abs;
function interp(isolevel, p1, p2, valp1, valp2) {
if (abs(isolevel-valp1) < 0.00001)
return p1;
if (abs(isolevel-valp2) < 0.00001)
return p2;
if (abs(valp1-valp2) < 0.00001)
return p1;
var mu = (isolevel - valp1) / (valp2 - valp1);
return {
x: p1.x + mu * (p2.x - p1.x),
y: p1.y + mu * (p2.y - p1.y),
z: p1.z + mu * (p2.z - p1.z)
};
}
function normal(p, fn) {
var x = fn(p.x - .01, p.y, p.z) - fn(p.x + .01, p.y, p.z),
y = fn(p.x, p.y - .01, p.z) - fn(p.x, p.y + .01, p.z),
z = fn(p.x, p.y, p.z - .01) - fn(p.x, p.y, p.z + .01),
d = Math.sqrt(x * x + y * y + z * z);
return {
x: x / d,
y: y / d,
z: z / d
};
}
MarchingCubes = {
sample : undefined,
polygonise: function(grid, isolevel, fn) {
var i,
cubeindex = 0,
vertlist = Array(12),
normlist = Array(12),
vertices = [],
normals = [],
ans = [];
/*
Determine the index into the edge table which
tells us which vertices are inside of the surface
*/
cubeindex = 0;
if (grid.val[0] < isolevel) cubeindex |= 1;
if (grid.val[1] < isolevel) cubeindex |= 2;
if (grid.val[2] < isolevel) cubeindex |= 4;
if (grid.val[3] < isolevel) cubeindex |= 8;
if (grid.val[4] < isolevel) cubeindex |= 16;
if (grid.val[5] < isolevel) cubeindex |= 32;
if (grid.val[6] < isolevel) cubeindex |= 64;
if (grid.val[7] < isolevel) cubeindex |= 128;
/* Cube is entirely in/out of the surface */
if (edgeTable[cubeindex] == 0)
return false;
/* Find the vertices where the surface intersects the cube */
if (edgeTable[cubeindex] & 1) {
vertlist[0] = interp(isolevel,grid.p[0],grid.p[1],grid.val[0],grid.val[1]);
normlist[0] = normal(vertlist[0], fn);
}
if (edgeTable[cubeindex] & 2) {
vertlist[1] = interp(isolevel,grid.p[1],grid.p[2],grid.val[1],grid.val[2]);
normlist[1] = normal(vertlist[1], fn);
}
if (edgeTable[cubeindex] & 4) {
vertlist[2] = interp(isolevel,grid.p[2],grid.p[3],grid.val[2],grid.val[3]);
normlist[2] = normal(vertlist[2], fn);
}
if (edgeTable[cubeindex] & 8) {
vertlist[3] = interp(isolevel,grid.p[3],grid.p[0],grid.val[3],grid.val[0]);
normlist[3] = normal(vertlist[3], fn);
}
if (edgeTable[cubeindex] & 16) {
vertlist[4] = interp(isolevel,grid.p[4],grid.p[5],grid.val[4],grid.val[5]);
normlist[4] = normal(vertlist[4], fn);
}
if (edgeTable[cubeindex] & 32) {
vertlist[5] = interp(isolevel,grid.p[5],grid.p[6],grid.val[5],grid.val[6]);
normlist[5] = normal(vertlist[5], fn);
}
if (edgeTable[cubeindex] & 64) {
vertlist[6] = interp(isolevel,grid.p[6],grid.p[7],grid.val[6],grid.val[7]);
normlist[6] = normal(vertlist[6], fn);
}
if (edgeTable[cubeindex] & 128) {
vertlist[7] = interp(isolevel,grid.p[7],grid.p[4],grid.val[7],grid.val[4]);
normlist[7] = normal(vertlist[7], fn);
}
if (edgeTable[cubeindex] & 256) {
vertlist[8] = interp(isolevel,grid.p[0],grid.p[4],grid.val[0],grid.val[4]);
normlist[8] = normal(vertlist[8], fn);
}
if (edgeTable[cubeindex] & 512) {
vertlist[9] = interp(isolevel,grid.p[1],grid.p[5],grid.val[1],grid.val[5]);
normlist[9] = normal(vertlist[9], fn);
}
if (edgeTable[cubeindex] & 1024) {
vertlist[10] = interp(isolevel,grid.p[2],grid.p[6],grid.val[2],grid.val[6]);
normlist[10] = normal(vertlist[10], fn);
}
if (edgeTable[cubeindex] & 2048) {
vertlist[11] = interp(isolevel,grid.p[3],grid.p[7],grid.val[3],grid.val[7]);
normlist[11] = normal(vertlist[11], fn);
}
/* Create the triangle */
for (i = 0; triTable[cubeindex][i] != -1; i += 3) {
var p1 = vertlist[triTable[cubeindex][i ]],
p2 = vertlist[triTable[cubeindex][i+1]],
p3 = vertlist[triTable[cubeindex][i+2]],
n1 = normlist[triTable[cubeindex][i ]],
n2 = normlist[triTable[cubeindex][i+1]],
n3 = normlist[triTable[cubeindex][i+2]];
vertices.push(p1.x, p1.y, p1.z,
p2.x, p2.y, p2.z,
p3.x, p3.y, p3.z);
normals.push(n1.x, n1.y, n1.z,
n2.x, n2.y, n2.z,
n3.x, n3.y, n3.z);
}
return {
vertices: vertices,
normals: normals
};
},
compute: function(obj, fn, isolevel) {
var x = obj.x,
xfrom = x.from,
xto = x.to,
xstep = x.step,
y = obj.y,
yfrom = y.from,
yto = y.to,
ystep = y.step,
z = obj.z,
zfrom = z.from,
zto = z.to,
zstep = z.step,
xstep2 = xstep/2,
ystep2 = ystep/2,
zstep2 = zstep/2,
vertices = [],
normals = [],
val, grid, isolevel,
polygonise = this.polygonise;
for (var xcur = xfrom; xcur <= xto; xcur += xstep) {
for (var ycur = yfrom; ycur <= yto; ycur += ystep) {
for (var zcur = zfrom; zcur <= zto; zcur += zstep) {
val = [];
var p1 = {
x: xcur - xstep2,
y: ycur - ystep2,
z: zcur - zstep2
},
p2 = {
x: xcur + xstep2,
y: ycur - ystep2,
z: zcur - zstep2
},
p3 = {
x: xcur + xstep2,
y: ycur + ystep2,
z: zcur - zstep2
},
p4 = {
x: xcur - xstep2,
y: ycur + ystep2,
z: zcur - zstep2
},
p5 = {
x: xcur - xstep2,
y: ycur - ystep2,
z: zcur + zstep2
},
p6 = {
x: xcur + xstep2,
y: ycur - ystep2,
z: zcur + zstep2
},
p7 = {
x: xcur + xstep2,
y: ycur + ystep2,
z: zcur + zstep2
},
p8 = {
x: xcur - xstep2,
y: ycur + ystep2,
z: zcur + zstep2
};
var test = function(p){
// if (p.x < 0 || p.y < 0 || p.z < 0)
// debug(sample[p.x]);
}
test(p1);
test(p2);
test(p3);
test(p4);
test(p5);
test(p6);
test(p7);
test(p8);
val.push(fn(p1.x, p1.y, p1.z),
fn(p2.x, p2.y, p2.z),
fn(p3.x, p3.y, p3.z),
fn(p4.x, p4.y, p4.z),
fn(p5.x, p5.y, p5.z),
fn(p6.x, p6.y, p6.z),
fn(p7.x, p7.y, p7.z),
fn(p8.x, p8.y, p8.z));
grid = {
p: [p1, p2, p3, p4, p5, p6, p7, p8],
val: val
};
var ans = polygonise(grid, isolevel, fn);
if (ans) {
vertices = vertices.concat(ans.vertices|| []);
normals = normals.concat(ans.normals || []);
}
}
}
}
return {
vertices: vertices,
normals: normals
};
}
};
})();
var debug = function(msg){
postMessage({type:"log", data:msg});
}
onmessage = function(e) {
try {
var data = e.data,
grid = data.grid,
fn = new Function('x,y,z, sample, debug, t', data.fn),
isolevel = data.isolevel,
time = +new Date,
curfn = function(x, y, z ) {
return fn(x, y, z, sample, debug, time);
};
postMessage({type:"data", data:MarchingCubes.compute(grid, curfn, isolevel)});
} catch(e) {
postMessage({type:"data", data:{
vertices: [],
normals: []
}});
}
};
var sample = [[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]],
[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]],
[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]],
[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]],
[[19, 18, 18, 16, 16, 18, 18, 19, 17, 19, 18, 16, 18, 19, 20, 18, 20, 19, 18, 20, 18, 18, 16, 19, 18, 17, 19, 16, 17, 16, 19, 16, 17, 16, 18, 18, 19, 17, 18, 17, 18, 20, 18],
[17, 18, 19, 16, 18, 17, 17, 18, 17, 16, 17, 17, 18, 18, 17, 16, 15, 17, 18, 18, 15, 19, 16, 18, 18, 20, 15, 18, 14, 17, 19, 15, 18, 17, 16, 16, 18, 17, 17, 15, 19, 18, 18],
[18, 19, 16, 17, 17, 18, 17, 16, 17, 16, 18, 19, 20, 17, 18, 15, 19, 18, 17, 18, 17, 18, 18, 17, 17, 16, 17, 20, 16, 18, 15, 17, 17, 16, 18, 19, 18, 15, 16, 17, 17, 19, 16],
[16, 17, 18, 19, 20, 19, 17, 19, 20, 20, 16, 18, 18, 17, 17, 18, 18, 17, 15, 17, 20, 19, 18, 18, 18, 16, 18, 17, 20, 19, 17, 20, 20, 17, 17, 17, 20, 17, 16, 16, 17, 21, 17],
[20, 16, 18, 19, 17, 21, 20, 17, 16, 17, 16, 19, 17, 18, 16, 18, 18, 19, 16, 18, 20, 20, 18, 18, 21, 18, 18, 20, 24, 14, 20, 21, 18, 18, 18, 18, 18, 18, 19, 22, 17, 16, 15],
[18, 20, 16, 18, 19, 19, 17, 18, 19, 19, 18, 17, 19, 18, 17, 20, 18, 17, 17, 18, 18, 17, 16, 17, 18, 17, 19, 20, 15, 18, 16, 16, 15, 20, 18, 19, 17, 19, 18, 16, 19, 18, 16],
[16, 15, 16, 19, 17, 16, 18, 16, 18, 19, 19, 24, 21, 21, 23, 26, 25, 22, 23, 18, 20, 18, 18, 20, 17, 19, 17, 20, 19, 17, 16, 17, 16, 19, 18, 17, 18, 17, 18, 19, 17, 18, 15],
[16, 17, 18, 17, 17, 17, 19, 17, 19, 20, 21, 23, 23, 25, 21, 23, 25, 22, 20, 21, 21, 17, 17, 16, 18, 18, 16, 21, 16, 19, 17, 17, 19, 17, 21, 18, 16, 20, 18, 20, 17, 18, 16],
[14, 18, 16, 18, 15, 17, 21, 21, 21, 29, 28, 24, 20, 19, 20, 16, 17, 22, 17, 18, 20, 22, 19, 19, 23, 19, 17, 20, 15, 19, 18, 18, 16, 17, 16, 16, 19, 16, 16, 20, 17, 16, 17],
[17, 20, 16, 18, 18, 21, 20, 23, 22, 20, 17, 19, 25, 26, 25, 24, 23, 21, 25, 21, 19, 19, 17, 19, 18, 19, 18, 19, 19, 17, 16, 19, 20, 17, 17, 20, 19, 16, 19, 20, 17, 18, 21],
[16, 16, 19, 18, 22, 21, 20, 21, 19, 20, 21, 23, 21, 20, 20, 19, 22, 24, 26, 18, 17, 20, 17, 22, 19, 19, 20, 21, 17, 19, 18, 18, 19, 20, 20, 19, 20, 17, 16, 17, 18, 17, 17],
[18, 16, 19, 23, 21, 21, 19, 22, 21, 17, 17, 18, 18, 21, 16, 20, 21, 17, 20, 19, 17, 19, 19, 19, 19, 19, 21, 21, 19, 18, 17, 17, 16, 21, 16, 18, 17, 15, 18, 18, 17, 17, 16],
[18, 21, 22, 22, 16, 20, 17, 19, 20, 21, 19, 19, 17, 17, 18, 19, 18, 18, 18, 17, 18, 18, 18, 19, 18, 17, 20, 19, 20, 18, 19, 20, 17, 16, 17, 21, 18, 19, 19, 20, 16, 19, 19],
[22, 23, 20, 21, 19, 20, 18, 17, 19, 19, 18, 16, 18, 21, 20, 16, 20, 17, 19, 21, 21, 20, 16, 20, 21, 17, 19, 18, 20, 20, 17, 19, 16, 18, 20, 16, 17, 17, 18, 18, 20, 21, 20],
[22, 23, 18, 15, 20, 19, 20, 19, 16, 18, 19, 16, 15, 18, 18, 19, 17, 17, 18, 18, 19, 22, 20, 16, 18, 20, 20, 21, 21, 22, 22, 17, 17, 21, 21, 20, 19, 16, 16, 16, 19, 20, 20],
[23, 18, 17, 17, 19, 17, 19, 19, 20, 19, 19, 20, 18, 18, 20, 19, 17, 19, 19, 17, 18, 20, 16, 17, 16, 17, 18, 18, 19, 20, 22, 22, 18, 18, 16, 17, 17, 18, 16, 20, 18, 17, 26],
[20, 18, 20, 17, 19, 18, 22, 20, 17, 17, 19, 17, 18, 19, 16, 19, 19, 20, 20, 18, 20, 16, 20, 18, 17, 19, 20, 18, 20, 17, 23, 26, 19, 19, 19, 17, 18, 15, 18, 19, 17, 26, 20],
[18, 18, 19, 15, 20, 18, 16, 20, 18, 16, 18, 19, 17, 19, 21, 19, 21, 18, 20, 21, 18, 20, 21, 18, 21, 17, 20, 18, 19, 19, 16, 29, 20, 15, 19, 16, 19, 17, 18, 17, 19, 20, 18],
[19, 20, 16, 17, 17, 20, 17, 20, 19, 19, 18, 18, 17, 25, 24, 21, 20, 21, 21, 19, 18, 20, 21, 22, 19, 20, 18, 19, 19, 19, 17, 26, 23, 20, 15, 20, 19, 20, 19, 20, 22, 18, 20],
[18, 18, 18, 19, 18, 19, 18, 17, 18, 18, 20, 18, 20, 22, 19, 20, 17, 19, 20, 15, 20, 24, 23, 21, 17, 18, 18, 20, 18, 18, 20, 20, 28, 20, 20, 19, 19, 19, 20, 24, 24, 19, 22],
[18, 25, 19, 18, 21, 18, 18, 19, 20, 20, 18, 22, 19, 21, 24, 20, 19, 19, 19, 18, 20, 23, 20, 22, 20, 19, 20, 21, 17, 19, 21, 20, 24, 21, 18, 21, 15, 16, 20, 32, 24, 15, 20],
[20, 19, 18, 22, 20, 17, 20, 19, 19, 19, 18, 19, 19, 20, 22, 24, 19, 23, 21, 20, 24, 22, 21, 20, 20, 18, 23, 22, 20, 17, 18, 20, 22, 24, 18, 17, 17, 20, 22, 24, 20, 20, 16],
[19, 19, 18, 16, 22, 20, 20, 19, 19, 17, 21, 20, 20, 21, 18, 26, 19, 19, 21, 21, 21, 18, 20, 21, 19, 25, 21, 19, 21, 21, 16, 17, 18, 23, 18, 19, 20, 19, 19, 29, 19, 18, 18],
[21, 17, 20, 17, 19, 18, 19, 19, 21, 18, 16, 19, 17, 19, 24, 26, 19, 21, 20, 21, 26, 21, 18, 21, 21, 18, 22, 18, 19, 17, 19, 19, 19, 25, 21, 21, 18, 18, 27, 28, 18, 20, 20],
[16, 17, 15, 16, 21, 19, 19, 20, 19, 19, 20, 19, 22, 21, 18, 21, 16, 20, 18, 19, 20, 28, 23, 19, 20, 19, 18, 19, 19, 19, 23, 21, 19, 26, 20, 19, 18, 16, 24, 23, 19, 17, 19],
[17, 18, 20, 21, 32, 39, 30, 19, 22, 19, 24, 21, 19, 20, 20, 20, 18, 22, 22, 18, 26, 28, 23, 22, 18, 17, 21, 20, 18, 25, 21, 24, 20, 27, 19, 20, 18, 19, 26, 21, 21, 20, 18],
[22, 18, 25, 36, 35, 28, 22, 20, 20, 21, 21, 21, 24, 21, 21, 25, 25, 21, 31, 37, 40, 38, 32, 20, 18, 20, 18, 20, 19, 18, 19, 17, 21, 26, 21, 20, 16, 22, 30, 18, 21, 21, 19],
[17, 25, 34, 20, 18, 21, 18, 19, 19, 20, 23, 23, 20, 23, 22, 24, 29, 79, 103, 102, 115, 92, 73, 33, 23, 23, 28, 21, 17, 20, 18, 23, 21, 24, 18, 20, 19, 22, 23, 21, 22, 20, 22],
[20, 18, 24, 24, 23, 19, 21, 19, 20, 24, 24, 23, 23, 23, 24, 36, 83, 130, 151, 156, 158, 141, 110, 67, 31, 20, 25, 18, 18, 21, 26, 20, 20, 32, 22, 20, 19, 20, 23, 18, 19, 18, 18],
[21, 20, 17, 23, 22, 23, 22, 23, 25, 27, 27, 24, 24, 22, 37, 96, 158, 186, 208, 204, 198, 171, 139, 84, 39, 23, 24, 21, 22, 24, 19, 21, 21, 26, 20, 18, 21, 20, 23, 21, 20, 18, 19],
[22, 19, 19, 20, 17, 19, 25, 37, 24, 25, 28, 30, 28, 29, 44, 111, 182, 212, 225, 223, 217, 181, 146, 89, 44, 27, 22, 21, 19, 21, 22, 21, 20, 19, 17, 17, 18, 23, 24, 20, 19, 19, 24],
[21, 20, 23, 23, 20, 22, 20, 26, 22, 27, 29, 28, 31, 34, 49, 114, 148, 155, 172, 173, 166, 129, 89, 49, 27, 29, 31, 27, 27, 29, 30, 23, 25, 25, 21, 20, 18, 20, 27, 19, 20, 20, 22],
[21, 22, 20, 22, 21, 29, 29, 25, 25, 24, 27, 26, 29, 33, 61, 144, 209, 223, 236, 213, 189, 154, 112, 65, 30, 32, 26, 22, 24, 29, 30, 22, 23, 24, 20, 17, 21, 19, 26, 18, 20, 20, 19],
[18, 19, 21, 23, 22, 21, 21, 26, 25, 27, 31, 33, 26, 29, 31, 74, 165, 181, 210, 190, 168, 123, 70, 31, 25, 28, 25, 24, 22, 18, 20, 21, 26, 21, 18, 19, 18, 20, 20, 19, 20, 21, 20],
[18, 20, 18, 18, 20, 20, 20, 23, 21, 27, 32, 33, 37, 35, 33, 31, 47, 93, 118, 81, 58, 37, 36, 28, 24, 24, 25, 23, 22, 23, 21, 21, 22, 20, 18, 20, 20, 20, 20, 19, 17, 20, 18],
[24, 21, 18, 20, 21, 19, 22, 30, 30, 25, 30, 32, 32, 30, 30, 28, 35, 38, 46, 45, 45, 31, 42, 28, 21, 33, 26, 27, 21, 24, 21, 21, 23, 19, 21, 31, 31, 32, 23, 20, 20, 20, 17],
[31, 31, 31, 24, 30, 28, 26, 23, 27, 31, 24, 27, 26, 25, 34, 29, 31, 56, 196, 136, 35, 30, 31, 27, 22, 24, 23, 22, 21, 21, 17, 21, 23, 18, 22, 40, 32, 54, 23, 29, 20, 19, 29],
[21, 20, 27, 31, 24, 21, 21, 23, 21, 21, 22, 22, 19, 21, 25, 23, 37, 217, 358, 364, 100, 24, 22, 22, 22, 17, 22, 21, 20, 20, 20, 21, 19, 28, 31, 45, 24, 24, 22, 21, 20, 15, 21],
[23, 23, 22, 20, 22, 21, 24, 21, 23, 21, 24, 21, 22, 22, 20, 31, 155, 348, 440, 353, 266, 34, 25, 25, 25, 24, 22, 21, 21, 21, 22, 21, 20, 25, 46, 44, 19, 19, 25, 23, 20, 19, 23],
[19, 26, 26, 24, 26, 21, 24, 21, 26, 26, 29, 26, 28, 31, 35, 186, 346, 271, 408, 296, 342, 120, 32, 33, 30, 28, 23, 22, 20, 21, 20, 20, 20, 20, 25, 21, 19, 20, 22, 19, 19, 22, 23],
[17, 20, 19, 21, 23, 21, 22, 24, 21, 27, 26, 21, 27, 30, 98, 344, 239, 120, 270, 223, 317, 284, 110, 30, 26, 25, 25, 33, 28, 19, 28, 25, 22, 23, 21, 22, 21, 22, 19, 17, 18, 18, 21],
[22, 20, 20, 21, 21, 18, 22, 20, 20, 22, 25, 20, 23, 33, 93, 101, 36, 121, 221, 133, 51, 167, 230, 33, 19, 27, 21, 25, 23, 19, 22, 23, 18, 21, 23, 18, 21, 21, 19, 17, 17, 16, 22],
[19, 26, 19, 16, 23, 22, 17, 20, 19, 18, 26, 24, 25, 30, 30, 23, 70, 254, 246, 242, 68, 25, 93, 26, 22, 23, 24, 24, 22, 19, 19, 20, 19, 20, 18, 19, 20, 20, 21, 17, 17, 17, 22],
[18, 18, 18, 17, 23, 17, 19, 22, 22, 20, 21, 19, 21, 23, 26, 30, 182, 232, 255, 240, 146, 32, 27, 25, 22, 22, 24, 21, 23, 19, 19, 20, 20, 18, 18, 20, 16, 17, 21, 18, 17, 19, 18],
[19, 21, 19, 21, 20, 21, 26, 20, 20, 24, 21, 24, 22, 23, 27, 89, 179, 191, 199, 170, 183, 44, 21, 30, 20, 25, 21, 21, 19, 19, 17, 19, 19, 18, 17, 17, 19, 19, 18, 18, 18, 17, 21],
[19, 22, 22, 21, 23, 23, 24, 25, 23, 29, 27, 31, 22, 30, 80, 170, 167, 153, 149, 154, 153, 113, 32, 20, 21, 23, 16, 17, 21, 19, 20, 18, 18, 18, 17, 19, 18, 16, 16, 17, 17, 18, 18],
[15, 23, 23, 20, 23, 23, 23, 28, 22, 30, 21, 24, 26, 102, 156, 154, 156, 159, 146, 154, 145, 129, 112, 31, 21, 25, 23, 17, 20, 21, 21, 20, 19, 20, 18, 19, 19, 18, 18, 18, 17, 18, 20],
[16, 17, 19, 26, 25, 22, 24, 31, 27, 24, 22, 28, 103, 167, 150, 151, 165, 154, 154, 145, 147, 134, 143, 110, 29, 24, 22, 15, 24, 19, 22, 22, 20, 20, 19, 17, 21, 19, 17, 19, 21, 18, 16],
[21, 19, 20, 22, 21, 19, 24, 26, 24, 25, 24, 82, 141, 134, 144, 143, 144, 151, 143, 139, 138, 135, 128, 127, 80, 26, 18, 23, 21, 22, 20, 17, 19, 21, 18, 17, 18, 19, 19, 19, 20, 20, 20],
[21, 17, 17, 21, 21, 19, 22, 20, 23, 22, 39, 104, 130, 148, 148, 131, 131, 127, 128, 126, 122, 126, 126, 117, 115, 42, 21, 20, 18, 15, 20, 17, 17, 19, 17, 22, 19, 18, 21, 18, 17, 17, 20],
[17, 16, 20, 20, 20, 19, 21, 20, 23, 23, 57, 117, 150, 139, 123, 113, 57, 69, 95, 51, 97, 113, 121, 127, 109, 71, 19, 18, 22, 17, 17, 18, 16, 20, 17, 16, 17, 18, 18, 20, 19, 19, 15],
[17, 19, 17, 19, 19, 20, 18, 20, 21, 19, 53, 129, 131, 98, 97, 65, 28, 48, 65, 34, 60, 112, 89, 114, 103, 76, 20, 19, 20, 18, 17, 19, 20, 15, 18, 16, 19, 17, 16, 19, 19, 20, 18],
[18, 19, 19, 20, 20, 19, 21, 20, 21, 24, 32, 76, 68, 78, 67, 36, 31, 40, 41, 30, 41, 47, 83, 110, 77, 70, 21, 20, 20, 19, 17, 18, 17, 17, 18, 17, 18, 19, 17, 20, 17, 19, 19],
[17, 19, 19, 18, 18, 19, 21, 20, 21, 20, 27, 88, 82, 93, 56, 22, 25, 27, 32, 28, 34, 51, 83, 77, 70, 32, 20, 18, 19, 21, 17, 17, 19, 19, 19, 14, 18, 17, 15, 19, 20, 19, 20],
[18, 21, 18, 20, 19, 20, 19, 19, 20, 20, 45, 92, 95, 100, 70, 44, 23, 21, 22, 22, 31, 43, 93, 86, 76, 43, 21, 23, 17, 19, 20, 20, 16, 17, 16, 16, 19, 19, 15, 20, 18, 22, 19],
[18, 17, 19, 18, 18, 19, 22, 16, 23, 19, 31, 81, 86, 80, 92, 64, 41, 24, 29, 30, 58, 57, 77, 82, 81, 55, 21, 18, 15, 21, 18, 18, 21, 16, 15, 17, 18, 18, 18, 17, 17, 17, 20],
[17, 18, 18, 19, 21, 18, 17, 20, 18, 18, 32, 78, 75, 79, 82, 73, 74, 43, 45, 59, 66, 78, 70, 73, 74, 46, 18, 19, 16, 19, 19, 17, 17, 21, 20, 17, 19, 20, 19, 16, 18, 20, 14],
[20, 19, 19, 18, 19, 22, 19, 17, 18, 17, 28, 67, 60, 73, 69, 74, 78, 59, 64, 68, 73, 77, 72, 62, 66, 27, 18, 22, 16, 20, 16, 17, 17, 19, 17, 16, 17, 17, 15, 17, 16, 18, 19],
[21, 18, 19, 18, 19, 19, 19, 20, 19, 19, 22, 57, 54, 57, 55, 63, 69, 67, 69, 62, 64, 68, 62, 54, 53, 23, 19, 18, 17, 16, 18, 16, 17, 17, 16, 20, 18, 21, 20, 16, 19, 17, 17],
[19, 20, 19, 18, 17, 18, 15, 15, 19, 18, 20, 38, 42, 47, 51, 48, 57, 57, 56, 48, 50, 50, 53, 43, 39, 20, 16, 16, 18, 16, 16, 16, 18, 14, 18, 15, 17, 20, 17, 18, 16, 16, 21],
[20, 18, 20, 20, 17, 19, 18, 19, 19, 16, 19, 31, 39, 33, 38, 44, 47, 41, 48, 44, 45, 37, 36, 39, 25, 18, 16, 17, 17, 16, 20, 17, 18, 17, 18, 18, 19, 15, 18, 20, 18, 20, 19],
[16, 20, 18, 16, 18, 17, 16, 18, 18, 19, 17, 25, 36, 30, 34, 35, 37, 35, 34, 40, 37, 31, 30, 34, 21, 18, 15, 19, 21, 16, 20, 16, 19, 20, 19, 20, 19, 16, 19, 19, 18, 17, 18],
[18, 17, 18, 17, 17, 16, 19, 17, 17, 19, 18, 23, 32, 24, 26, 31, 33, 28, 30, 34, 33, 24, 23, 28, 17, 19, 16, 17, 17, 19, 15, 17, 18, 18, 17, 17, 20, 17, 20, 17, 17, 17, 17],
[18, 18, 18, 18, 15, 21, 18, 15, 19, 13, 17, 24, 29, 22, 28, 24, 25, 22, 25, 27, 27, 22, 24, 22, 18, 17, 17, 17, 20, 17, 18, 18, 16, 17, 19, 18, 18, 18, 18, 16, 15, 17, 18]],
[[25, 22, 22, 20, 23, 21, 23, 25, 23, 23, 21, 27, 27, 23, 23, 27, 28, 26, 28, 27, 22, 25, 25, 23, 22, 24, 27, 24, 24, 22, 23, 27, 22, 22, 24, 26, 25, 23, 22, 22, 25, 22, 25],
[27, 26, 23, 21, 23, 26, 24, 24, 25, 25, 22, 23, 27, 23, 25, 25, 24, 24, 25, 25, 23, 22, 23, 24, 26, 24, 24, 21, 23, 25, 25, 26, 24, 24, 23, 24, 23, 23, 23, 23, 24, 24, 23],
[24, 23, 25, 28, 23, 22, 26, 24, 25, 22, 24, 23, 19, 25, 23, 24, 19, 26, 24, 25, 23, 22, 22, 25, 28, 26, 23, 22, 22, 28, 24, 26, 21, 25, 26, 25, 26, 25, 27, 21, 24, 25, 25],
[25, 23, 24, 25, 25, 22, 23, 21, 24, 25, 23, 23, 22, 26, 22, 25, 23, 24, 26, 28, 23, 24, 24, 25, 26, 24, 19, 23, 24, 27, 21, 25, 24, 24, 24, 23, 21, 20, 26, 24, 26, 24, 25],
[23, 24, 26, 23, 24, 23, 26, 23, 23, 23, 24, 22, 24, 21, 23, 23, 23, 27, 22, 26, 22, 25, 23, 25, 25, 25, 25, 24, 22, 24, 22, 24, 22, 25, 22, 24, 24, 24, 24, 24, 23, 25, 26],
[26, 23, 25, 24, 24, 23, 26, 22, 24, 25, 23, 25, 25, 23, 23, 25, 22, 28, 20, 22, 24, 24, 25, 23, 22, 21, 22, 23, 23, 24, 19, 23, 26, 24, 23, 24, 25, 24, 24, 25, 24, 20, 24],
[24, 24, 25, 24, 24, 27, 24, 24, 21, 26, 25, 30, 25, 29, 34, 34, 37, 34, 28, 29, 26, 23, 25, 22, 24, 23, 24, 22, 23, 24, 24, 22, 24, 22, 24, 24, 24, 25, 25, 23, 21, 23, 25],
[24, 23, 25, 23, 25, 22, 26, 24, 26, 35, 35, 36, 31, 31, 31, 27, 28, 28, 31, 25, 25, 29, 24, 22, 24, 26, 21, 24, 23, 22, 22, 23, 20, 26, 22, 24, 23, 23, 23, 27, 23, 26, 28],
[25, 25, 22, 24, 25, 24, 25, 32, 29, 31, 33, 30, 28, 25, 28, 26, 23, 26, 25, 26, 27, 29, 28, 31, 25, 25, 28, 23, 24, 23, 20, 24, 27, 21, 23, 23, 23, 22, 24, 24, 24, 23, 24],
[25, 23, 24, 23, 25, 25, 29, 30, 31, 29, 28, 29, 29, 36, 31, 32, 34, 29, 25, 27, 22, 27, 27, 27, 30, 24, 27, 24, 27, 22, 23, 22, 20, 23, 26, 25, 24, 21, 23, 25, 25, 24, 24],
[25, 23, 23, 27, 26, 26, 27, 25, 30, 30, 26, 34, 27, 24, 25, 29, 24, 27, 31, 27, 27, 30, 27, 26, 27, 31, 25, 25, 25, 21, 27, 21, 25, 22, 26, 23, 26, 23, 24, 22, 21, 25, 22],
[23, 22, 25, 27, 27, 29, 29, 26, 30, 27, 25, 25, 24, 27, 28, 22, 26, 26, 28, 24, 21, 24, 24, 24, 26, 29, 26, 31, 28, 24, 23, 25, 24, 20, 23, 25, 25, 25, 22, 24, 25, 19, 25],
[26, 26, 26, 26, 25, 25, 26, 28, 26, 25, 25, 21, 24, 23, 24, 25, 24, 24, 28, 26, 26, 26, 25, 26, 27, 28, 26, 26, 30, 27, 23, 23, 25, 25, 25, 24, 22, 20, 26, 23, 23, 23, 26],
[26, 28, 28, 23, 23, 23, 22, 26, 27, 23, 22, 28, 25, 27, 25, 24, 24, 27, 22, 22, 24, 24, 25, 21, 24, 24, 25, 25, 26, 29, 27, 24, 25, 23, 26, 24, 24, 24, 26, 25, 25, 27, 28],
[33, 33, 24, 24, 26, 25, 23, 23, 24, 25, 27, 22, 25, 26, 26, 24, 24, 27, 24, 24, 25, 27, 25, 26, 26, 25, 25, 25, 25, 33, 27, 26, 26, 25, 23, 28, 20, 22, 22, 24, 25, 22, 30],
[27, 28, 21, 27, 24, 22, 22, 23, 24, 24, 23, 28, 26, 29, 22, 24, 25, 24, 27, 26, 25, 27, 29, 24, 25, 25, 28, 27, 25, 27, 30, 29, 22, 26, 21, 28, 24, 23, 27, 25, 22, 27, 33],
[25, 26, 30, 25, 26, 26, 28, 27, 26, 24, 21, 24, 24, 26, 25, 26, 25, 25, 27, 26, 27, 25, 28, 25, 27, 25, 24, 26, 25, 27, 33, 31, 24, 24, 27, 28, 23, 28, 23, 22, 23, 33, 27],
[28, 24, 24, 26, 24, 28, 26, 25, 26, 24, 25, 26, 24, 28, 28, 26, 24, 24, 26, 25, 22, 29, 22, 27, 22, 24, 25, 23, 24, 24, 26, 39, 25, 26, 24, 27, 24, 23, 25, 25, 25, 28, 28],
[26, 26, 23, 26, 25, 24, 24, 26, 26, 24, 25, 22, 28, 27, 23, 24, 28, 28, 27, 23, 28, 29, 26, 26, 21, 26, 27, 27, 26, 27, 29, 33, 33, 26, 26, 27, 24, 24, 24, 27, 35, 26, 28],
[28, 26, 23, 26, 22, 24, 28, 24, 25, 27, 26, 27, 26, 28, 30, 30, 26, 25, 27, 25, 28, 31, 28, 28, 24, 24, 27, 22, 24, 24, 28, 24, 37, 25, 23, 25, 27, 24, 26, 29, 33, 26, 24],
[29, 22, 24, 26, 25, 28, 27, 28, 23, 25, 24, 24, 28, 26, 24, 28, 24, 25, 32, 22, 28, 29, 27, 27, 25, 23, 27, 28, 27, 26, 27, 27, 36, 25, 24, 19, 25, 23, 25, 36, 27, 26, 26],
[28, 26, 24, 22, 24, 23, 24, 25, 23, 26, 26, 25, 24, 24, 28, 29, 28, 26, 29, 25, 30, 30, 29, 25, 29, 28, 29, 31, 27, 26, 26, 27, 32, 29, 24, 22, 24, 24, 27, 42, 26, 23, 27],
[25, 25, 27, 27, 25, 28, 26, 26, 23, 26, 26, 25, 25, 25, 27, 29, 29, 24, 25, 27, 26, 30, 26, 28, 27, 28, 26, 27, 30, 25, 24, 25, 30, 31, 25, 29, 25, 25, 27, 47, 29, 25, 37],
[23, 24, 22, 26, 28, 26, 28, 30, 24, 26, 24, 28, 25, 26, 30, 34, 28, 25, 29, 24, 30, 35, 29, 28, 25, 26, 29, 25, 25, 23, 25, 27, 28, 30, 23, 27, 24, 26, 36, 36, 26, 26, 24],
[25, 24, 25, 24, 26, 28, 26, 29, 31, 25, 25, 27, 25, 24, 26, 27, 25, 24, 25, 29, 32, 29, 27, 27, 26, 25, 26, 25, 25, 26, 30, 31, 26, 35, 26, 29, 26, 27, 38, 33, 27, 28, 27],
[25, 25, 24, 28, 28, 33, 37, 29, 25, 27, 24, 24, 28, 27, 27, 25, 25, 29, 31, 32, 35, 36, 29, 26, 24, 28, 26, 23, 27, 25, 27, 26, 25, 38, 29, 24, 27, 27, 36, 27, 24, 26, 27],
[26, 24, 31, 29, 42, 27, 28, 25, 26, 30, 31, 29, 23, 31, 29, 29, 26, 27, 33, 31, 32, 31, 28, 25, 25, 27, 27, 29, 28, 26, 26, 27, 25, 37, 25, 23, 27, 25, 41, 26, 27, 24, 23],
[24, 28, 32, 31, 27, 28, 30, 26, 28, 31, 33, 31, 31, 33, 30, 32, 28, 33, 32, 32, 35, 26, 27, 27, 22, 25, 25, 30, 24, 27, 29, 25, 28, 34, 29, 25, 26, 26, 39, 27, 26, 24, 26],
[24, 26, 25, 24, 26, 30, 29, 27, 31, 34, 37, 36, 33, 30, 32, 32, 32, 39, 33, 30, 40, 34, 30, 28, 28, 30, 28, 26, 26, 32, 35, 27, 28, 30, 29, 27, 24, 28, 38, 29, 25, 22, 29],
[28, 25, 27, 31, 30, 28, 30, 31, 37, 38, 40, 40, 34, 33, 35, 38, 33, 31, 34, 36, 38, 29, 27, 26, 29, 29, 30, 26, 28, 29, 26, 25, 27, 33, 31, 27, 23, 28, 38, 27, 29, 25, 27],
[29, 27, 25, 28, 27, 30, 29, 31, 29, 37, 41, 34, 47, 35, 42, 32, 40, 40, 43, 39, 34, 29, 28, 26, 34, 30, 33, 33, 27, 25, 31, 31, 28, 32, 24, 22, 26, 25, 36, 27, 29, 27, 27],
[26, 27, 26, 30, 31, 30, 33, 32, 31, 36, 39, 38, 35, 30, 34, 33, 49, 45, 38, 37, 31, 36, 31, 34, 37, 41, 41, 37, 34, 39, 45, 28, 33, 29, 26, 28, 26, 25, 39, 24, 25, 26, 23],
[31, 29, 32, 29, 30, 29, 34, 32, 35, 39, 35, 38, 37, 39, 45, 49, 49, 49, 49, 41, 45, 40, 40, 38, 43, 38, 34, 35, 34, 39, 29, 34, 33, 30, 30, 27, 26, 29, 31, 29, 26, 28, 22],
[27, 25, 26, 28, 26, 26, 33, 31, 34, 44, 36, 38, 38, 40, 39, 37, 40, 45, 38, 40, 44, 42, 53, 36, 35, 35, 34, 32, 30, 30, 28, 28, 34, 27, 27, 24, 28, 25, 34, 28, 27, 27, 22],
[26, 29, 24, 33, 29, 30, 34, 32, 36, 40, 33, 37, 43, 37, 42, 41, 42, 52, 63, 53, 44, 43, 45, 36, 36, 38, 28, 32, 33, 30, 28, 26, 31, 24, 26, 27, 27, 25, 28, 26, 28, 26, 29],
[33, 28, 25, 27, 28, 30, 37, 41, 38, 40, 35, 36, 42, 38, 43, 43, 49, 66, 236, 223, 62, 46, 49, 36, 35, 35, 28, 31, 31, 30, 27, 28, 34, 29, 27, 32, 30, 29, 29, 25, 27, 29, 31],
[65, 55, 35, 32, 34, 39, 40, 40, 34, 43, 28, 35, 35, 39, 32, 47, 50, 211, 434, 427, 149, 36, 39, 35, 33, 33, 30, 28, 28, 32, 25, 26, 30, 27, 29, 29, 34, 53, 26, 27, 29, 30, 31],
[32, 32, 36, 32, 34, 32, 34, 32, 28, 31, 31, 31, 29, 27, 28, 41, 89, 361, 471, 441, 307, 44, 36, 27, 27, 30, 30, 35, 32, 28, 28, 29, 29, 25, 33, 31, 30, 26, 30, 25, 25, 25, 27],
[26, 25, 29, 27, 30, 31, 33, 32, 25, 29, 33, 26, 24, 28, 29, 49, 259, 419, 527, 420, 398, 85, 38, 32, 32, 26, 34, 29, 28, 26, 26, 30, 30, 29, 71, 50, 26, 29, 32, 29, 26, 25, 33],
[29, 28, 33, 33, 34, 31, 32, 31, 31, 36, 38, 34, 41, 40, 69, 275, 428, 324, 509, 357, 403, 133, 61, 34, 36, 37, 32, 26, 27, 28, 29, 35, 28, 35, 34, 33, 25, 28, 29, 27, 32, 26, 34],
[32, 23, 28, 24, 29, 30, 31, 30, 27, 35, 34, 32, 40, 53, 386, 313, 272, 125, 403, 195, 367, 367, 311, 51, 36, 37, 34, 38, 29, 26, 27, 28, 26, 30, 29, 30, 25, 27, 25, 26, 25, 25, 24],
[30, 26, 28, 28, 25, 26, 25, 31, 26, 33, 34, 30, 34, 94, 431, 144, 57, 138, 310, 99, 79, 236, 363, 156, 32, 33, 31, 36, 30, 30, 28, 30, 26, 30, 28, 29, 28, 29, 26, 24, 23, 22, 21],
[28, 37, 26, 28, 25, 27, 28, 30, 31, 30, 29, 31, 29, 58, 228, 91, 132, 336, 291, 300, 106, 84, 231, 143, 27, 31, 29, 26, 27, 26, 26, 26, 26, 28, 27, 23, 21, 26, 28, 29, 24, 26, 22],
[23, 26, 27, 26, 26, 28, 27, 26, 31, 34, 35, 32, 31, 36, 56, 76, 293, 327, 287, 323, 233, 104, 214, 69, 32, 27, 30, 27, 29, 26, 26, 24, 24, 27, 25, 24, 26, 25, 27, 24, 25, 22, 22],
[25, 31, 26, 28, 26, 28, 31, 30, 27, 35, 36, 31, 33, 36, 109, 208, 237, 280, 293, 286, 264, 180, 61, 39, 38, 31, 30, 29, 26, 26, 27, 28, 25, 26, 26, 24, 24, 25, 29, 22, 27, 27, 27],
[30, 30, 31, 26, 30, 33, 27, 39, 28, 30, 34, 33, 35, 141, 213, 209, 222, 255, 254, 243, 212, 187, 144, 49, 30, 33, 26, 30, 29, 28, 29, 26, 24, 23, 27, 26, 20, 23, 25, 25, 28, 28, 32],
[26, 26, 27, 28, 28, 27, 27, 38, 35, 27, 32, 43, 153, 219, 212, 225, 217, 218, 231, 232, 208, 183, 169, 150, 45, 30, 27, 30, 26, 28, 27, 26, 22, 29, 26, 24, 26, 24, 24, 23, 22, 24, 26],
[24, 26, 26, 34, 31, 34, 32, 43, 37, 43, 45, 139, 209, 197, 215, 218, 211, 206, 202, 217, 208, 182, 187, 196, 132, 50, 37, 29, 28, 25, 25, 27, 25, 27, 27, 26, 23, 25, 25, 25, 26, 25, 22],
[26, 22, 25, 30, 33, 30, 31, 31, 32, 41, 102, 185, 177, 201, 209, 211, 189, 176, 186, 187, 188, 187, 181, 167, 175, 89, 36, 26, 28, 30, 24, 26, 25, 26, 28, 25, 23, 25, 25, 22, 23, 24, 24],
[25, 24, 27, 30, 26, 34, 31, 30, 30, 64, 145, 164, 194, 211, 185, 184, 124, 96, 125, 122, 165, 178, 174, 164, 152, 124, 51, 31, 29, 27, 26, 29, 23, 25, 21, 26, 27, 24, 24, 24, 25, 24, 24],
[23, 23, 22, 22, 27, 27, 29, 25, 31, 89, 140, 168, 186, 160, 133, 129, 46, 53, 66, 56, 122, 176, 146, 161, 150, 128, 93, 37, 28, 27, 24, 23, 25, 25, 25, 20, 23, 29, 22, 27, 23, 27, 19],
[21, 24, 26, 26, 30, 27, 27, 27, 40, 83, 134, 188, 163, 136, 58, 67, 45, 49, 70, 57, 92, 84, 117, 135, 152, 123, 107, 54, 24, 26, 27, 23, 26, 24, 26, 26, 24, 24, 26, 21, 24, 22, 23],
[26, 26, 22, 27, 25, 29, 27, 26, 35, 60, 110, 114, 129, 108, 40, 55, 56, 81, 66, 51, 68, 46, 117, 124, 143, 102, 84, 56, 30, 26, 23, 27, 25, 25, 25, 23, 25, 23, 23, 23, 24, 25, 26],
[23, 24, 24, 26, 28, 27, 25, 26, 24, 30, 60, 112, 117, 112, 37, 36, 42, 52, 50, 46, 37, 45, 94, 121, 125, 66, 59, 44, 31, 23, 29, 26, 22, 25, 24, 24, 20, 24, 24, 25, 28, 28, 25],
[23, 23, 22, 23, 23, 27, 26, 27, 24, 28, 101, 133, 132, 135, 59, 37, 27, 26, 33, 35, 33, 46, 87, 118, 108, 83, 29, 31, 27, 24, 25, 27, 25, 24, 26, 22, 23, 27, 24, 25, 26, 25, 24],
[24, 24, 24, 27, 29, 23, 28, 26, 26, 35, 103, 107, 115, 126, 96, 38, 31, 29, 31, 29, 30, 63, 96, 130, 117, 104, 33, 23, 26, 28, 24, 22, 27, 22, 24, 25, 27, 26, 24, 25, 24, 25, 21],
[23, 29, 23, 28, 26, 25, 27, 23, 25, 33, 92, 97, 102, 120, 103, 53, 46, 38, 47, 45, 38, 83, 100, 105, 102, 87, 29, 24, 25, 19, 23, 24, 26, 25, 24, 23, 25, 25, 26, 20, 23, 26, 24],
[30, 24, 23, 23, 25, 26, 24, 25, 24, 27, 73, 82, 97, 104, 92, 73, 53, 39, 48, 58, 49, 93, 99, 86, 78, 69, 25, 25, 24, 21, 24, 22, 23, 22, 23, 23, 23, 22, 25, 26, 26, 24, 22],
[22, 23, 22, 25, 23, 22, 26, 23, 23, 27, 63, 76, 79, 87, 76, 75, 71, 49, 55, 57, 68, 88, 93, 85, 73, 58, 27, 22, 22, 25, 25, 23, 23, 24, 26, 25, 25, 22, 23, 25, 24, 28, 28],
[26, 22, 25, 21, 23, 26, 24, 24, 25, 24, 52, 68, 59, 67, 75, 68, 69, 67, 66, 66, 73, 67, 74, 63, 67, 41, 25, 23, 22, 22, 23, 20, 23, 23, 25, 23, 23, 24, 26, 25, 21, 23, 23],
[24, 23, 28, 26, 26, 26, 24, 24, 23, 23, 33, 53, 46, 54, 55, 61, 63, 56, 62, 64, 65, 59, 53, 50, 53, 32, 25, 25, 23, 23, 22, 21, 24, 21, 25, 26, 23, 23, 27, 23, 24, 25, 21],
[24, 20, 24, 25, 22, 24, 26, 26, 25, 23, 30, 50, 43, 43, 48, 54, 48, 48, 52, 55, 51, 47, 39, 41, 39, 26, 24, 22, 27, 23, 23, 24, 22, 28, 23, 26, 21, 23, 27, 24, 25, 24, 29],
[23, 23, 26, 26, 24, 24, 23, 25, 22, 22, 26, 37, 36, 38, 41, 42, 43, 44, 39, 47, 44, 35, 37, 40, 30, 21, 23, 21, 23, 24, 23, 26, 22, 23, 26, 28, 23, 26, 25, 24, 24, 23, 23],
[23, 21, 25, 23, 23, 23, 23, 24, 22, 22, 22, 40, 34, 28, 37, 35, 34, 29, 32, 39, 35, 31, 28, 34, 26, 24, 26, 24, 24, 25, 22, 24, 22, 24, 25, 27, 25, 22, 23, 27, 24, 26, 24]],
[[20, 21, 24, 20, 25, 23, 22, 23, 25, 26, 24, 25, 23, 29, 27, 24, 24, 21, 24, 23, 27, 26, 28, 25, 25, 23, 27, 26, 27, 23, 25, 25, 23, 23, 20, 28, 24, 22, 25, 24, 25, 24, 24],
[22, 23, 23, 25, 25, 24, 21, 25, 23, 23, 20, 24, 24, 26, 23, 23, 25, 25, 24, 22, 25, 24, 20, 23, 25, 23, 25, 23, 24, 23, 21, 22, 27, 23, 25, 25, 23, 25, 25, 26, 25, 22, 19],
[22, 24, 21, 24, 24, 26, 24, 27, 23, 24, 27, 25, 22, 25, 22, 22, 25, 24, 21, 26, 24, 24, 22, 26, 24, 25, 22, 23, 25, 23, 22, 25, 24, 27, 26, 23, 23, 24, 26, 23, 23, 26, 19],
[23, 24, 23, 21, 25, 25, 24, 25, 24, 21, 30, 23, 24, 22, 25, 23, 23, 23, 23, 23, 26, 25, 23, 22, 25, 22, 22, 22, 21, 24, 24, 25, 26, 21, 22, 21, 26, 26, 24, 24, 24, 22, 23],
[21, 22, 25, 25, 23, 22, 24, 24, 27, 24, 24, 21, 26, 19, 26, 22, 21, 26, 22, 22, 26, 25, 26, 25, 24, 24, 23, 22, 26, 25, 25, 22, 24, 23, 25, 26, 25, 26, 26, 24, 23, 22, 26],
[25, 25, 24, 22, 21, 25, 27, 26, 26, 24, 24, 22, 28, 24, 24, 25, 22, 24, 22, 23, 26, 26, 25, 24, 24, 26, 25, 24, 23, 24, 26, 20, 22, 22, 26, 24, 22, 21, 24, 22, 24, 23, 21],
[24, 27, 23, 25, 25, 22, 23, 25, 24, 24, 24, 25, 28, 30, 32, 31, 29, 35, 28, 24, 24, 25, 24, 24, 22, 26, 24, 22, 24, 25, 22, 25, 24, 24, 24, 24, 22, 25, 25, 25, 25, 24, 27],
[23, 24, 25, 25, 24, 24, 21, 20, 21, 30, 31, 35, 26, 27, 27, 30, 28, 31, 31, 28, 25, 25, 30, 26, 27, 23, 23, 24, 26, 23, 26, 26, 21, 21, 25, 24, 24, 26, 24, 22, 24, 25, 24],
[23, 25, 26, 25, 21, 27, 25, 28, 29, 33, 28, 27, 26, 27, 25, 25, 26, 27, 29, 26, 25, 28, 28, 27, 26, 26, 24, 24, 24, 21, 27, 23, 26, 23, 24, 23, 25, 25, 25, 24, 21, 23, 27],
[22, 22, 25, 25, 25, 27, 23, 27, 26, 30, 23, 25, 32, 35, 38, 31, 31, 24, 26, 28, 24, 24, 27, 26, 27, 25, 27, 24, 25, 27, 27, 24, 21, 23, 24, 22, 24, 20, 20, 23, 25, 25, 27],
[25, 25, 19, 24, 28, 28, 25, 30, 27, 24, 30, 35, 31, 28, 27, 28, 27, 32, 34, 26, 33, 26, 26, 24, 25, 26, 27, 24, 24, 26, 28, 25, 23, 25, 22, 21, 23, 25, 26, 23, 23, 26, 24],
[23, 24, 27, 27, 29, 25, 27, 26, 28, 30, 26, 25, 24, 25, 26, 27, 26, 28, 28, 26, 25, 28, 26, 27, 26, 25, 25, 27, 28, 23, 29, 23, 25, 24, 23, 25, 22, 25, 23, 25, 24, 21, 21],
[23, 24, 26, 27, 26, 25, 23, 28, 28, 25, 26, 26, 23, 24, 24, 24, 26, 25, 25, 27, 26, 24, 23, 25, 25, 26, 25, 25, 25, 26, 20, 24, 25, 26, 26, 24, 25, 21, 23, 21, 26, 23, 22],
[27, 32, 27, 26, 25, 24, 26, 24, 26, 25, 24, 24, 25, 27, 24, 26, 25, 23, 26, 26, 25, 24, 27, 28, 25, 25, 27, 25, 24, 27, 22, 25, 24, 26, 24, 24, 24, 21, 25, 24, 24, 23, 24],
[27, 29, 27, 27, 27, 24, 22, 25, 26, 22, 24, 26, 23, 26, 26, 24, 26, 25, 26, 21, 24, 24, 26, 25, 25, 24, 26, 25, 25, 29, 24, 25, 22, 26, 24, 23, 24, 22, 21, 25, 22, 24, 21],
[27, 30, 26, 27, 28, 24, 25, 29, 26, 25, 25, 25, 24, 25, 24, 28, 28, 23, 25, 25, 27, 27, 26, 21, 24, 23, 27, 25, 26, 28, 34, 23, 25, 27, 21, 26, 26, 23, 26, 24, 26, 26, 33],
[25, 25, 22, 25, 23, 24, 26, 26, 27, 24, 24, 27, 25, 26, 27, 26, 28, 27, 24, 22, 28, 27, 23, 22, 22, 23, 28, 24, 25, 26, 35, 30, 23, 23, 26, 25, 23, 24, 22, 23, 23, 28, 31],
[29, 24, 25, 25, 24, 24, 26, 24, 25, 24, 23, 25, 21, 22, 23, 27, 25, 26, 26, 27, 23, 26, 24, 24, 27, 27, 23, 23, 26, 28, 28, 38, 26, 26, 25, 22, 21, 25, 25, 21, 28, 34, 28],
[26, 24, 23, 24, 25, 26, 22, 25, 24, 27, 26, 26, 26, 25, 25, 24, 27, 26, 25, 23, 24, 28, 30, 28, 24, 21, 29, 27, 27, 31, 26, 37, 27, 21, 23, 28, 25, 22, 26, 25, 32, 26, 32],
[27, 26, 23, 24, 24, 24, 22, 27, 24, 24, 26, 25, 27, 26, 27, 32, 26, 26, 25, 25, 25, 30, 26, 23, 25, 30, 31, 26, 24, 28, 28, 28, 36, 26, 27, 26, 26, 26, 25, 27, 33, 24, 27],
[27, 26, 22, 26, 25, 24, 28, 28, 22, 27, 23, 28, 28, 28, 27, 28, 26, 25, 27, 26, 28, 28, 30, 28, 29, 33, 26, 23, 27, 29, 25, 26, 36, 26, 26, 25, 24, 24, 21, 36, 35, 28, 26],
[26, 23, 26, 27, 26, 24, 27, 25, 25, 26, 26, 27, 24, 27, 26, 32, 25, 26, 28, 26, 25, 32, 26, 26, 26, 25, 28, 29, 29, 24, 25, 28, 36, 29, 25, 24, 24, 25, 25, 41, 29, 26, 23],
[29, 27, 30, 28, 27, 28, 28, 27, 27, 28, 27, 25, 24, 25, 28, 25, 24, 26, 28, 25, 30, 28, 25, 26, 25, 28, 27, 29, 24, 25, 27, 27, 29, 30, 26, 26, 26, 26, 29, 40, 24, 25, 31],
[27, 26, 28, 23, 26, 27, 29, 25, 28, 29, 25, 23, 27, 29, 28, 26, 32, 25, 26, 28, 26, 27, 26, 23, 27, 26, 25, 28, 28, 21, 30, 28, 30, 33, 28, 25, 25, 22, 30, 34, 25, 26, 27],
[25, 24, 24, 25, 27, 23, 29, 25, 25, 29, 24, 25, 24, 26, 25, 26, 25, 27, 29, 30, 28, 32, 23, 26, 24, 27, 30, 34, 29, 25, 30, 27, 31, 40, 26, 26, 23, 25, 35, 35, 29, 28, 25],
[29, 28, 25, 26, 26, 28, 28, 26, 24, 27, 23, 27, 28, 26, 27, 26, 26, 29, 28, 23, 31, 32, 31, 26, 28, 26, 23, 25, 28, 27, 25, 30, 28, 39, 27, 25, 26, 27, 40, 32, 27, 24, 31],
[24, 25, 32, 30, 29, 28, 29, 28, 32, 26, 26, 34, 30, 24, 28, 29, 28, 29, 31, 28, 32, 28, 24, 29, 25, 24, 28, 27, 25, 26, 30, 26, 32, 38, 29, 24, 27, 27, 39, 33, 26, 25, 26],
[26, 23, 30, 28, 32, 35, 28, 26, 24, 28, 28, 27, 27, 28, 32, 29, 28, 27, 34, 32, 34, 29, 26, 27, 29, 28, 24, 25, 24, 27, 25, 25, 26, 35, 26, 25, 25, 23, 39, 29, 24, 25, 30],
[27, 27, 30, 25, 28, 27, 26, 27, 30, 28, 35, 37, 30, 29, 35, 33, 29, 31, 33, 34, 40, 30, 26, 27, 27, 27, 27, 25, 26, 30, 26, 27, 26, 35, 30, 25, 24, 26, 38, 24, 29, 26, 27],
[27, 25, 26, 32, 29, 28, 35, 30, 32, 37, 41, 43, 38, 32, 41, 45, 30, 29, 29, 29, 42, 31, 25, 29, 26, 27, 25, 27, 25, 24, 30, 29, 26, 31, 26, 25, 32, 27, 34, 32, 29, 27, 26],
[29, 31, 26, 31, 27, 30, 31, 28, 30, 36, 42, 42, 46, 43, 33, 26, 30, 30, 33, 31, 38, 29, 28, 25, 35, 37, 33, 32, 31, 31, 33, 29, 28, 32, 25, 27, 27, 27, 33, 27, 28, 29, 32],
[29, 29, 26, 27, 27, 29, 33, 29, 31, 37, 38, 42, 41, 37, 40, 30, 36, 39, 36, 35, 36, 31, 31, 32, 45, 36, 35, 34, 38, 34, 48, 28, 33, 30, 25, 26, 24, 26, 34, 24, 27, 27, 32],
[27, 28, 26, 30, 28, 28, 32, 32, 30, 38, 35, 37, 38, 42, 56, 44, 43, 53, 41, 37, 42, 35, 39, 40, 59, 48, 33, 32, 34, 36, 35, 27, 31, 29, 29, 23, 23, 25, 39, 27, 29, 26, 23],
[29, 29, 25, 32, 30, 27, 30, 34, 35, 43, 44, 38, 34, 36, 39, 38, 38, 49, 63, 67, 39, 41, 45, 43, 36, 38, 35, 35, 35, 32, 30, 26, 31, 28, 27, 28, 28, 24, 35, 26, 24, 30, 28],
[29, 26, 27, 30, 30, 28, 29, 31, 36, 33, 41, 39, 38, 38, 37, 36, 38, 76, 233, 254, 113, 45, 47, 38, 34, 39, 34, 37, 30, 28, 31, 29, 32, 27, 27, 26, 26, 28, 32, 22, 28, 28, 27],
[27, 26, 27, 25, 31, 30, 32, 40, 39, 37, 37, 42, 38, 38, 38, 42, 43, 187, 431, 476, 331, 54, 52, 36, 35, 39, 32, 35, 31, 36, 30, 27, 30, 27, 27, 27, 26, 29, 30, 29, 28, 27, 25],
[66, 35, 30, 34, 37, 40, 41, 35, 29, 35, 33, 31, 32, 35, 38, 34, 66, 341, 392, 372, 365, 56, 40, 35, 34, 34, 34, 34, 28, 31, 29, 30, 28, 25, 28, 25, 25, 29, 28, 29, 27, 27, 40],
[32, 43, 37, 34, 31, 34, 31, 28, 25, 30, 29, 33, 27, 29, 31, 41, 164, 362, 289, 273, 378, 86, 37, 34, 27, 27, 28, 33, 30, 27, 26, 30, 25, 28, 28, 26, 25, 24, 28, 29, 28, 27, 29],
[25, 29, 25, 26, 31, 33, 28, 28, 30, 29, 32, 29, 30, 34, 35, 56, 313, 318, 355, 320, 371, 181, 38, 27, 27, 28, 32, 30, 30, 27, 24, 30, 27, 27, 28, 31, 27, 26, 31, 27, 27, 26, 25],
[35, 27, 31, 33, 30, 28, 37, 28, 31, 37, 34, 34, 40, 40, 77, 251, 438, 287, 399, 341, 402, 229, 72, 38, 35, 30, 40, 28, 25, 29, 27, 34, 30, 25, 24, 26, 25, 26, 27, 24, 26, 29, 32],
[33, 28, 26, 23, 31, 29, 27, 33, 32, 36, 35, 34, 45, 94, 439, 340, 370, 114, 416, 93, 266, 348, 270, 61, 41, 30, 35, 35, 34, 29, 32, 32, 27, 24, 26, 26, 22, 26, 27, 29, 26, 25, 25],
[28, 25, 25, 24, 28, 22, 27, 31, 26, 35, 39, 28, 36, 219, 478, 192, 74, 80, 268, 43, 85, 196, 299, 199, 33, 29, 33, 43, 35, 28, 30, 29, 27, 25, 25, 26, 28, 27, 27, 28, 24, 22, 21],
[25, 32, 29, 26, 27, 25, 30, 30, 28, 32, 41, 28, 36, 130, 359, 205, 110, 170, 223, 102, 53, 178, 229, 183, 30, 27, 35, 35, 27, 28, 30, 28, 24, 25, 26, 25, 26, 29, 28, 25, 29, 24, 23],
[28, 29, 28, 27, 25, 27, 33, 28, 33, 34, 33, 31, 35, 40, 136, 152, 306, 313, 219, 242, 249, 272, 186, 84, 41, 32, 29, 30, 28, 27, 26, 23, 28, 25, 28, 28, 25, 24, 25, 26, 24, 25, 23],
[26, 26, 28, 29, 26, 23, 33, 34, 35, 26, 33, 30, 44, 156, 190, 163, 251, 279, 270, 308, 308, 228, 130, 49, 41, 28, 32, 25, 26, 26, 25, 26, 27, 24, 26, 25, 24, 29, 28, 25, 24, 28, 35],
[27, 29, 25, 27, 26, 32, 28, 33, 38, 30, 31, 59, 179, 254, 225, 211, 237, 256, 261, 286, 254, 192, 157, 162, 63, 31, 30, 26, 27, 25, 31, 28, 28, 25, 23, 26, 26, 24, 28, 28, 26, 23, 30],
[25, 25, 26, 24, 29, 28, 32, 29, 32, 30, 68, 199, 256, 227, 228, 219, 246, 205, 190, 252, 230, 199, 179, 170, 171, 61, 32, 29, 24, 27, 29, 23, 26, 27, 27, 23, 24, 22, 25, 28, 28, 25, 23],
[27, 23, 28, 31, 29, 27, 27, 35, 36, 64, 182, 199, 191, 220, 222, 219, 208, 162, 142, 219, 210, 180, 178, 176, 195, 168, 50, 27, 25, 30, 26, 25, 25, 27, 24, 25, 24, 22, 24, 25, 26, 27, 23],
[23, 25, 25, 28, 30, 28, 30, 29, 39, 150, 198, 171, 210, 204, 180, 171, 112, 74, 101, 104, 174, 169, 163, 171, 165, 176, 114, 37, 29, 24, 29, 29, 28, 25, 24, 23, 25, 25, 26, 25, 25, 24, 25],
[23, 26, 23, 26, 26, 31, 33, 28, 85, 167, 158, 185, 215, 187, 151, 96, 51, 47, 49, 35, 121, 139, 163, 178, 176, 149, 153, 94, 30, 25, 23, 31, 26, 25, 25, 24, 22, 25, 25, 25, 24, 25, 29],