ada-idna 0.1.0

Fast IDNA (Internationalized Domain Names in Applications) implementation in Rust
Documentation
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
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
// Hangul constants
pub const HANGUL_SBASE: u32 = 0xAC00;
pub const HANGUL_LBASE: u32 = 0x1100;
pub const HANGUL_VBASE: u32 = 0x1161;
pub const HANGUL_TBASE: u32 = 0x11A7;
pub const HANGUL_LCOUNT: u32 = 19;
pub const HANGUL_VCOUNT: u32 = 21;
pub const HANGUL_TCOUNT: u32 = 28;
pub const HANGUL_NCOUNT: u32 = HANGUL_VCOUNT * HANGUL_TCOUNT; // 588
pub const HANGUL_SCOUNT: u32 = HANGUL_LCOUNT * HANGUL_VCOUNT * HANGUL_TCOUNT; // 11172

// For now, using minimal tables - these will be populated with actual data from C++
pub const DECOMPOSITION_INDEX: [u8; 4352] = [
    0, 1, 2, 3, 4, 5, 6, 7, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 16, 7,
    17, 18, 19, 20, 21, 22, 23, 24, 7, 7, 7, 7, 7, 25, 7, 26, 27, 28, 29, 30, 31, 32, 33, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 34, 35, 7, 7, 7, 36, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 37, 38, 39, 40, 41, 42, 43, 7, 7, 7, 7, 7, 7, 7, 44, 7, 7, 7, 7, 7, 7, 7, 7, 45, 46,
    7, 47, 48, 49, 7, 7, 7, 50, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 51, 7, 52, 53, 54, 55, 56, 7, 7, 7, 7, 7, 7, 7, 7, 57, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    58, 59, 7, 60, 61, 62, 7, 7, 7, 7, 7, 7, 7, 7, 63, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 64, 65, 66, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
];
pub static DECOMPOSITION_BLOCK: [[u16; 257]; 67] = [
    [
        4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
        4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
        4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
        4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
        4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
        4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 8, 8, 8, 8, 8, 8, 8, 9, 16, 17, 20, 20, 20, 20, 21, 28,
        28, 29, 33, 37, 45, 48, 48, 49, 57, 61, 64, 65, 77, 89, 100, 100, 108, 116, 124, 132, 140,
        148, 148, 156, 164, 172, 180, 188, 196, 204, 212, 220, 220, 228, 236, 244, 252, 260, 268,
        268, 268, 276, 284, 292, 300, 308, 308, 308, 316, 324, 332, 340, 348, 356, 356, 364, 372,
        380, 388, 396, 404, 412, 420, 428, 428, 436, 444, 452, 460, 468, 476, 476, 476, 484, 492,
        500, 508, 516, 516, 524,
    ],
    [
        524, 532, 540, 548, 556, 564, 572, 580, 588, 596, 604, 612, 620, 628, 636, 644, 652, 652,
        652, 660, 668, 676, 684, 692, 700, 708, 716, 724, 732, 740, 748, 756, 764, 772, 780, 788,
        796, 804, 812, 812, 812, 820, 828, 836, 844, 852, 860, 868, 876, 884, 885, 893, 900, 908,
        916, 924, 932, 932, 940, 948, 956, 964, 972, 981, 989, 996, 996, 996, 1004, 1012, 1020,
        1028, 1036, 1045, 1052, 1052, 1052, 1060, 1068, 1076, 1084, 1092, 1100, 1100, 1100, 1108,
        1116, 1124, 1132, 1140, 1148, 1156, 1164, 1172, 1180, 1188, 1196, 1204, 1212, 1220, 1228,
        1236, 1244, 1244, 1244, 1252, 1260, 1268, 1276, 1284, 1292, 1300, 1308, 1316, 1324, 1332,
        1340, 1348, 1356, 1364, 1372, 1380, 1388, 1396, 1404, 1412, 1420, 1429, 1432, 1432, 1432,
        1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432,
        1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432,
        1440, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448,
        1456, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464,
        1464, 1464, 1464, 1464, 1464, 1465, 1477, 1489, 1501, 1509, 1517, 1525, 1533, 1541, 1548,
        1556, 1564, 1572, 1580, 1588, 1596, 1604, 1612, 1624, 1636, 1648, 1660, 1672, 1684, 1696,
        1708, 1708, 1720, 1732, 1744, 1756, 1764, 1772, 1772, 1772, 1780, 1788, 1796, 1804, 1812,
        1820, 1832, 1844, 1852, 1860, 1869, 1877, 1885, 1892, 1900, 1908, 1908, 1908, 1916, 1924,
        1936, 1948, 1956, 1964, 1972, 1980,
    ],
    [
        1980, 1988, 1996, 2004, 2012, 2020, 2028, 2036, 2044, 2052, 2060, 2068, 2076, 2084, 2092,
        2100, 2108, 2116, 2124, 2132, 2140, 2148, 2156, 2164, 2172, 2180, 2188, 2196, 2204, 2204,
        2204, 2212, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2228, 2236, 2244, 2252, 2264, 2276,
        2288, 2300, 2308, 2316, 2328, 2340, 2348, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356,
        2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356,
        2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356,
        2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356,
        2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356,
        2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356,
        2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356,
        2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356,
        2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2357, 2361, 2365, 2369,
        2373, 2377, 2381, 2385, 2389, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392,
        2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392,
        2392, 2392, 2392, 2392, 2392, 2392, 2393, 2401, 2409, 2417, 2425, 2433, 2440, 2440, 2441,
        2445, 2449, 2453, 2457, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460,
        2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460,
        2460, 2460,
    ],
    [
        2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460,
        2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460,
        2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460,
        2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460, 2460,
        2460, 2460, 2460, 2460, 2460, 2464, 2468, 2468, 2472, 2480, 2480, 2480, 2480, 2480, 2480,
        2480, 2480, 2480, 2480, 2480, 2480, 2480, 2480, 2480, 2480, 2480, 2480, 2480, 2480, 2480,
        2480, 2480, 2480, 2480, 2480, 2480, 2480, 2480, 2480, 2480, 2480, 2480, 2480, 2480, 2480,
        2480, 2480, 2480, 2480, 2480, 2480, 2480, 2480, 2480, 2480, 2480, 2480, 2484, 2484, 2484,
        2484, 2484, 2485, 2492, 2492, 2492, 2492, 2496, 2496, 2496, 2496, 2496, 2497, 2506, 2512,
        2520, 2524, 2532, 2540, 2548, 2548, 2556, 2556, 2564, 2572, 2584, 2584, 2584, 2584, 2584,
        2584, 2584, 2584, 2584, 2584, 2584, 2584, 2584, 2584, 2584, 2584, 2584, 2584, 2584, 2584,
        2584, 2584, 2584, 2584, 2584, 2584, 2592, 2600, 2608, 2616, 2624, 2632, 2644, 2644, 2644,
        2644, 2644, 2644, 2644, 2644, 2644, 2644, 2644, 2644, 2644, 2644, 2644, 2644, 2644, 2644,
        2644, 2644, 2644, 2644, 2644, 2644, 2644, 2644, 2652, 2660, 2668, 2676, 2684, 2685, 2689,
        2693, 2698, 2706, 2713, 2717, 2720, 2720, 2720, 2720, 2720, 2720, 2720, 2720, 2720, 2720,
        2720, 2720, 2720, 2720, 2720, 2720, 2720, 2720, 2720, 2720, 2720, 2720, 2720, 2720, 2720,
        2721, 2725, 2729, 2732, 2733, 2737, 2740, 2740, 2740, 2741, 2744, 2744, 2744, 2744, 2744,
        2744, 2744,
    ],
    [
        2744, 2752, 2760, 2760, 2768, 2768, 2768, 2768, 2776, 2776, 2776, 2776, 2776, 2784, 2792,
        2800, 2800, 2800, 2800, 2800, 2800, 2800, 2800, 2800, 2800, 2800, 2808, 2808, 2808, 2808,
        2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
        2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2816, 2816,
        2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816,
        2816, 2816, 2816, 2816, 2816, 2816, 2824, 2832, 2832, 2840, 2840, 2840, 2840, 2848, 2848,
        2848, 2848, 2848, 2856, 2864, 2872, 2872, 2872, 2872, 2872, 2872, 2872, 2872, 2872, 2872,
        2872, 2872, 2872, 2872, 2872, 2872, 2872, 2872, 2872, 2872, 2872, 2872, 2872, 2872, 2880,
        2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888,
        2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888,
        2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888,
        2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888,
        2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2896,
        2904, 2904, 2904, 2904, 2904, 2904, 2904, 2904, 2904, 2904, 2904, 2904, 2904, 2904, 2912,
        2920, 2928, 2936, 2936, 2936, 2944, 2952, 2952, 2952, 2960, 2968, 2976, 2984, 2992, 3000,
        3000, 3000, 3008, 3016, 3024, 3032, 3040, 3048, 3048, 3048, 3056, 3064, 3072, 3080, 3088,
        3096, 3104, 3112, 3120, 3128, 3136, 3144, 3144, 3144, 3152, 3160, 3160, 3160, 3160, 3160,
        3160, 3160,
    ],
    [
        3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160,
        3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160,
        3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160,
        3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160,
        3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160,
        3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160,
        3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160,
        3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160,
        3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160,
        3161, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168,
        3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168,
        3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168,
        3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168,
        3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168,
        3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168,
        3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168,
        3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168,
        3168, 3168,
    ],
    [
        3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168,
        3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168,
        3168, 3168, 3168, 3168, 3168, 3176, 3184, 3192, 3200, 3208, 3208, 3208, 3208, 3208, 3208,
        3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208,
        3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208,
        3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208,
        3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208,
        3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3209, 3217, 3225,
        3233, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240,
        3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240,
        3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240,
        3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240,
        3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3248, 3248,
        3256, 3256, 3256, 3256, 3256, 3256, 3256, 3256, 3256, 3256, 3256, 3256, 3256, 3256, 3256,
        3256, 3256, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264,
        3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264,
        3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264,
        3264, 3264,
    ],
    [
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    ],
    [
        3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264,
        3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264,
        3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3272, 3272, 3272,
        3272, 3272, 3272, 3272, 3272, 3280, 3280, 3280, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
        3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
        3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3296,
        3304, 3312, 3320, 3328, 3336, 3344, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352,
        3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352,
        3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352,
        3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352,
        3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352,
        3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352,
        3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352,
        3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3360, 3368, 3368, 3368, 3368, 3368,
        3368, 3368, 3368, 3368, 3368, 3368, 3368, 3368, 3368, 3368, 3368, 3376, 3384, 3384, 3392,
        3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392,
        3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392,
        3392, 3392,
    ],
    [
        3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392,
        3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392,
        3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392,
        3392, 3392, 3392, 3392, 3392, 3392, 3392, 3400, 3400, 3400, 3408, 3408, 3408, 3408, 3408,
        3408, 3408, 3408, 3408, 3408, 3408, 3408, 3408, 3408, 3408, 3408, 3408, 3408, 3408, 3408,
        3408, 3408, 3408, 3408, 3408, 3408, 3408, 3408, 3408, 3408, 3408, 3408, 3408, 3408, 3408,
        3416, 3424, 3432, 3432, 3432, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440,
        3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440,
        3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440,
        3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440,
        3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440,
        3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440,
        3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440,
        3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440,
        3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440,
        3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440,
        3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440,
        3440, 3440,
    ],
    [
        3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440,
        3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440,
        3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440,
        3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440,
        3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3448, 3448,
        3448, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464,
        3464, 3464, 3464, 3472, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
        3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
        3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
        3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3488,
        3488, 3488, 3488, 3488, 3488, 3488, 3488, 3488, 3488, 3488, 3488, 3488, 3488, 3488, 3488,
        3488, 3488, 3488, 3488, 3488, 3488, 3488, 3488, 3488, 3488, 3488, 3488, 3488, 3488, 3488,
        3488, 3488, 3488, 3488, 3488, 3488, 3488, 3488, 3488, 3488, 3488, 3488, 3488, 3488, 3488,
        3488, 3488, 3488, 3488, 3488, 3488, 3488, 3488, 3496, 3504, 3512, 3512, 3512, 3512, 3512,
        3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512,
        3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512,
        3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512,
        3512, 3512,
    ],
    [
        3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512,
        3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512,
        3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512,
        3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512,
        3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3520, 3520,
        3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520,
        3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520,
        3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520,
        3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520,
        3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520,
        3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520,
        3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520,
        3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3528, 3528,
        3528, 3528, 3528, 3528, 3528, 3536, 3544, 3544, 3552, 3564, 3564, 3564, 3564, 3564, 3564,
        3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564,
        3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564,
        3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564,
        3564, 3564,
    ],
    [
        3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564,
        3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564,
        3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564,
        3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564,
        3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564,
        3572, 3580, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588,
        3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588,
        3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588,
        3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588,
        3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588,
        3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588,
        3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588,
        3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588,
        3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588,
        3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3596, 3596, 3604, 3616, 3624, 3624,
        3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624,
        3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624,
        3624, 3624,
    ],
    [
        3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624,
        3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624,
        3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624,
        3624, 3624, 3624, 3624, 3624, 3624, 3625, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632,
        3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632,
        3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632,
        3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632,
        3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632,
        3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632,
        3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632,
        3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632,
        3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3633,
        3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640,
        3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640,
        3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3641, 3649, 3656, 3656, 3656,
        3656, 3656, 3656, 3656, 3656, 3656, 3656, 3656, 3656, 3656, 3656, 3656, 3656, 3656, 3656,
        3656, 3656, 3656, 3656, 3656, 3656, 3656, 3656, 3656, 3656, 3656, 3656, 3656, 3656, 3656,
        3656, 3656,
    ],
    [
        3656, 3656, 3656, 3656, 3656, 3656, 3656, 3656, 3656, 3656, 3656, 3656, 3657, 3660, 3660,
        3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660,
        3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660,
        3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660,
        3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3668, 3668, 3668, 3668, 3668, 3668, 3668,
        3668, 3668, 3668, 3676, 3676, 3676, 3676, 3676, 3684, 3684, 3684, 3684, 3684, 3692, 3692,
        3692, 3692, 3692, 3700, 3700, 3700, 3700, 3700, 3700, 3700, 3700, 3700, 3700, 3700, 3700,
        3700, 3708, 3708, 3708, 3708, 3708, 3708, 3708, 3708, 3708, 3708, 3716, 3716, 3724, 3733,
        3744, 3753, 3764, 3764, 3764, 3764, 3764, 3764, 3764, 3764, 3772, 3772, 3772, 3772, 3772,
        3772, 3772, 3772, 3772, 3772, 3772, 3772, 3772, 3772, 3772, 3772, 3772, 3772, 3780, 3780,
        3780, 3780, 3780, 3780, 3780, 3780, 3780, 3780, 3788, 3788, 3788, 3788, 3788, 3796, 3796,
        3796, 3796, 3796, 3804, 3804, 3804, 3804, 3804, 3812, 3812, 3812, 3812, 3812, 3812, 3812,
        3812, 3812, 3812, 3812, 3812, 3812, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820,
        3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820,
        3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820,
        3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820,
        3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820,
        3820, 3820,
    ],
    [
        3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820,
        3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820,
        3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3820, 3828, 3828, 3828, 3828, 3828, 3828,
        3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828,
        3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828,
        3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828,
        3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828,
        3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828,
        3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828,
        3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828,
        3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828,
        3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828,
        3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828,
        3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828,
        3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828,
        3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828,
        3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3829, 3832, 3832,
        3832, 3832,
    ],
    [
        3832, 3832, 3832, 3832, 3832, 3832, 3832, 3840, 3840, 3848, 3848, 3856, 3856, 3864, 3864,
        3872, 3872, 3872, 3872, 3880, 3880, 3880, 3880, 3880, 3880, 3880, 3880, 3880, 3880, 3880,
        3880, 3880, 3880, 3880, 3880, 3880, 3880, 3880, 3880, 3880, 3880, 3880, 3880, 3880, 3880,
        3880, 3880, 3880, 3880, 3880, 3880, 3880, 3880, 3880, 3880, 3880, 3880, 3880, 3880, 3880,
        3888, 3888, 3896, 3896, 3896, 3904, 3912, 3912, 3920, 3920, 3920, 3920, 3920, 3920, 3920,
        3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920,
        3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920,
        3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920,
        3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920,
        3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920,
        3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920,
        3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920,
        3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920,
        3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920,
        3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920,
        3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920,
        3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920,
        3920, 3920,
    ],
    [
        3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920,
        3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920,
        3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3921,
        3925, 3929, 3932, 3933, 3937, 3941, 3945, 3949, 3953, 3957, 3961, 3965, 3969, 3973, 3976,
        3977, 3981, 3985, 3989, 3993, 3997, 4001, 4005, 4009, 4013, 4017, 4021, 4025, 4029, 4033,
        4037, 4041, 4045, 4048, 4049, 4053, 4057, 4061, 4065, 4069, 4073, 4077, 4081, 4085, 4089,
        4093, 4097, 4101, 4105, 4109, 4113, 4117, 4121, 4125, 4129, 4133, 4137, 4141, 4145, 4149,
        4153, 4157, 4160, 4160, 4160, 4160, 4160, 4160, 4160, 4160, 4160, 4160, 4160, 4160, 4160,
        4161, 4164, 4164, 4164, 4164, 4164, 4164, 4164, 4164, 4164, 4164, 4164, 4164, 4164, 4164,
        4164, 4164, 4164, 4164, 4164, 4164, 4164, 4164, 4164, 4164, 4164, 4164, 4164, 4164, 4164,
        4164, 4164, 4164, 4164, 4164, 4165, 4169, 4173, 4177, 4181, 4185, 4189, 4193, 4197, 4201,
        4205, 4209, 4213, 4217, 4221, 4225, 4229, 4233, 4237, 4241, 4245, 4249, 4253, 4257, 4261,
        4265, 4269, 4273, 4277, 4281, 4285, 4289, 4293, 4297, 4301, 4305, 4309, 4312, 4312, 4312,
        4312, 4312, 4312, 4312, 4312, 4312, 4312, 4312, 4312, 4312, 4312, 4312, 4312, 4312, 4312,
        4312, 4312, 4312, 4312, 4312, 4312, 4312, 4312, 4312, 4312, 4312, 4312, 4312, 4312, 4312,
        4312, 4312, 4312, 4312, 4312, 4312, 4312, 4312, 4312, 4312, 4312, 4312, 4312, 4312, 4312,
        4312, 4312, 4312, 4312, 4312, 4312, 4312, 4312, 4312, 4312, 4312, 4312, 4312, 4312, 4312,
        4312, 4312,
    ],
    [
        4312, 4320, 4328, 4336, 4344, 4352, 4360, 4368, 4376, 4388, 4400, 4408, 4416, 4424, 4432,
        4440, 4448, 4456, 4464, 4472, 4480, 4492, 4504, 4516, 4528, 4536, 4544, 4552, 4560, 4572,
        4584, 4592, 4600, 4608, 4616, 4624, 4632, 4640, 4648, 4656, 4664, 4672, 4680, 4688, 4696,
        4704, 4712, 4724, 4736, 4744, 4752, 4760, 4768, 4776, 4784, 4792, 4800, 4812, 4824, 4832,
        4840, 4848, 4856, 4864, 4872, 4880, 4888, 4896, 4904, 4912, 4920, 4928, 4936, 4944, 4952,
        4960, 4968, 4980, 4992, 5004, 5016, 5028, 5040, 5052, 5064, 5072, 5080, 5088, 5096, 5104,
        5112, 5120, 5128, 5140, 5152, 5160, 5168, 5176, 5184, 5192, 5200, 5212, 5224, 5236, 5248,
        5260, 5272, 5280, 5288, 5296, 5304, 5312, 5320, 5328, 5336, 5344, 5352, 5360, 5368, 5376,
        5384, 5396, 5408, 5420, 5432, 5440, 5448, 5456, 5464, 5472, 5480, 5488, 5496, 5504, 5512,
        5520, 5528, 5536, 5544, 5552, 5560, 5568, 5576, 5584, 5592, 5600, 5608, 5616, 5624, 5632,
        5640, 5648, 5656, 5664, 5673, 5682, 5688, 5688, 5688, 5688, 5688, 5696, 5704, 5712, 5720,
        5732, 5744, 5756, 5768, 5780, 5792, 5804, 5816, 5828, 5840, 5852, 5864, 5876, 5888, 5900,
        5912, 5924, 5936, 5948, 5960, 5968, 5976, 5984, 5992, 6000, 6008, 6020, 6032, 6044, 6056,
        6068, 6080, 6092, 6104, 6116, 6128, 6136, 6144, 6152, 6160, 6168, 6176, 6184, 6192, 6204,
        6216, 6228, 6240, 6252, 6264, 6276, 6288, 6300, 6312, 6324, 6336, 6348, 6360, 6372, 6384,
        6396, 6408, 6420, 6432, 6440, 6448, 6456, 6464, 6476, 6488, 6500, 6512, 6524, 6536, 6548,
        6560, 6572, 6584, 6592, 6600, 6608, 6616, 6624, 6632, 6640, 6648, 6648, 6648, 6648, 6648,
        6648, 6648,
    ],
    [
        6648, 6656, 6664, 6676, 6688, 6700, 6712, 6724, 6736, 6744, 6752, 6764, 6776, 6788, 6800,
        6812, 6824, 6832, 6840, 6852, 6864, 6876, 6888, 6888, 6888, 6896, 6904, 6916, 6928, 6940,
        6952, 6952, 6952, 6960, 6968, 6980, 6992, 7004, 7016, 7028, 7040, 7048, 7056, 7068, 7080,
        7092, 7104, 7116, 7128, 7136, 7144, 7156, 7168, 7180, 7192, 7204, 7216, 7224, 7232, 7244,
        7256, 7268, 7280, 7292, 7304, 7312, 7320, 7332, 7344, 7356, 7368, 7368, 7368, 7376, 7384,
        7396, 7408, 7420, 7432, 7432, 7432, 7440, 7448, 7460, 7472, 7484, 7496, 7508, 7520, 7520,
        7528, 7528, 7540, 7540, 7552, 7552, 7564, 7572, 7580, 7592, 7604, 7616, 7628, 7640, 7652,
        7660, 7668, 7680, 7692, 7704, 7716, 7728, 7740, 7748, 7756, 7764, 7772, 7780, 7788, 7796,
        7804, 7812, 7820, 7828, 7836, 7844, 7852, 7852, 7852, 7864, 7876, 7892, 7908, 7924, 7940,
        7956, 7972, 7984, 7996, 8012, 8028, 8044, 8060, 8076, 8092, 8104, 8116, 8132, 8148, 8164,
        8180, 8196, 8212, 8224, 8236, 8252, 8268, 8284, 8300, 8316, 8332, 8344, 8356, 8372, 8388,
        8404, 8420, 8436, 8452, 8464, 8476, 8492, 8508, 8524, 8540, 8556, 8572, 8580, 8588, 8600,
        8608, 8620, 8620, 8628, 8640, 8648, 8656, 8664, 8672, 8681, 8688, 8693, 8701, 8710, 8716,
        8728, 8736, 8748, 8748, 8756, 8768, 8776, 8784, 8792, 8800, 8810, 8818, 8826, 8832, 8840,
        8848, 8860, 8872, 8872, 8872, 8880, 8892, 8900, 8908, 8916, 8924, 8926, 8934, 8942, 8948,
        8956, 8964, 8976, 8988, 8996, 9004, 9012, 9024, 9032, 9040, 9048, 9056, 9066, 9074, 9080,
        9084, 9084, 9084, 9096, 9104, 9116, 9116, 9124, 9136, 9144, 9152, 9160, 9168, 9178, 9181,
        9188, 9190,
    ],
    [
        9190, 9194, 9197, 9201, 9205, 9209, 9213, 9217, 9221, 9225, 9229, 9232, 9232, 9232, 9232,
        9232, 9232, 9233, 9236, 9236, 9236, 9236, 9236, 9237, 9244, 9244, 9244, 9244, 9244, 9244,
        9244, 9244, 9244, 9244, 9244, 9244, 9245, 9249, 9257, 9268, 9268, 9268, 9268, 9268, 9268,
        9268, 9268, 9269, 9272, 9272, 9272, 9273, 9281, 9292, 9293, 9301, 9312, 9312, 9312, 9312,
        9313, 9320, 9321, 9328, 9328, 9328, 9328, 9328, 9328, 9328, 9328, 9329, 9337, 9345, 9352,
        9352, 9352, 9352, 9352, 9352, 9352, 9352, 9352, 9352, 9352, 9352, 9352, 9353, 9368, 9368,
        9368, 9368, 9368, 9368, 9368, 9369, 9372, 9372, 9372, 9372, 9372, 9372, 9372, 9372, 9372,
        9372, 9372, 9372, 9372, 9372, 9372, 9372, 9373, 9377, 9380, 9380, 9381, 9385, 9389, 9393,
        9397, 9401, 9405, 9409, 9413, 9417, 9421, 9425, 9429, 9433, 9437, 9441, 9445, 9449, 9453,
        9457, 9461, 9465, 9469, 9473, 9477, 9481, 9485, 9488, 9489, 9493, 9497, 9501, 9505, 9509,
        9513, 9517, 9521, 9525, 9529, 9533, 9537, 9540, 9540, 9540, 9540, 9540, 9540, 9540, 9540,
        9540, 9540, 9540, 9541, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548,
        9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548,
        9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548,
        9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548,
        9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548,
        9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548, 9548,
        9548, 9549,
    ],
    [
        9549, 9561, 9573, 9577, 9584, 9585, 9597, 9609, 9612, 9613, 9621, 9625, 9629, 9633, 9637,
        9641, 9645, 9649, 9653, 9657, 9660, 9661, 9665, 9672, 9672, 9673, 9677, 9681, 9685, 9689,
        9692, 9692, 9693, 9701, 9713, 9720, 9721, 9724, 9724, 9728, 9729, 9732, 9732, 9736, 9745,
        9749, 9752, 9753, 9757, 9761, 9764, 9765, 9769, 9773, 9777, 9781, 9785, 9789, 9792, 9793,
        9805, 9809, 9813, 9817, 9821, 9824, 9824, 9824, 9824, 9825, 9829, 9833, 9837, 9841, 9844,
        9844, 9844, 9844, 9844, 9844, 9845, 9857, 9869, 9885, 9897, 9909, 9921, 9933, 9945, 9957,
        9969, 9981, 9993, 10005, 10017, 10029, 10037, 10041, 10049, 10061, 10069, 10073, 10081,
        10093, 10109, 10117, 10121, 10129, 10141, 10145, 10149, 10153, 10157, 10161, 10169, 10181,
        10189, 10193, 10201, 10213, 10229, 10237, 10241, 10249, 10261, 10265, 10269, 10273, 10276,
        10276, 10276, 10276, 10276, 10276, 10276, 10276, 10276, 10277, 10288, 10288, 10288, 10288,
        10288, 10288, 10288, 10288, 10288, 10288, 10288, 10288, 10288, 10288, 10288, 10288, 10288,
        10296, 10304, 10304, 10304, 10304, 10304, 10304, 10304, 10304, 10304, 10304, 10304, 10304,
        10304, 10304, 10304, 10304, 10304, 10304, 10304, 10312, 10312, 10312, 10312, 10312, 10312,
        10312, 10312, 10312, 10312, 10312, 10312, 10312, 10312, 10312, 10312, 10312, 10312, 10312,
        10312, 10312, 10312, 10312, 10312, 10312, 10312, 10312, 10312, 10312, 10312, 10312, 10320,
        10328, 10336, 10336, 10336, 10336, 10336, 10336, 10336, 10336, 10336, 10336, 10336, 10336,
        10336, 10336, 10336, 10336, 10336, 10336, 10336, 10336, 10336, 10336, 10336, 10336, 10336,
        10336, 10336, 10336, 10336, 10336, 10336, 10336, 10336, 10336, 10336, 10336, 10336, 10336,
        10336, 10336, 10336, 10336, 10336, 10336, 10336, 10336, 10336, 10336, 10336,
    ],
    [
        10336, 10336, 10336, 10336, 10336, 10344, 10344, 10344, 10344, 10344, 10352, 10352, 10352,
        10360, 10360, 10360, 10360, 10360, 10360, 10360, 10360, 10360, 10360, 10360, 10360, 10360,
        10360, 10360, 10360, 10360, 10360, 10360, 10360, 10360, 10360, 10360, 10360, 10368, 10368,
        10376, 10376, 10376, 10376, 10376, 10377, 10385, 10396, 10397, 10405, 10416, 10416, 10416,
        10416, 10416, 10416, 10416, 10416, 10416, 10416, 10416, 10416, 10416, 10416, 10416, 10416,
        10416, 10424, 10424, 10424, 10432, 10432, 10432, 10440, 10440, 10448, 10448, 10448, 10448,
        10448, 10448, 10448, 10448, 10448, 10448, 10448, 10448, 10448, 10448, 10448, 10448, 10448,
        10448, 10448, 10448, 10448, 10448, 10448, 10456, 10456, 10464, 10464, 10464, 10464, 10464,
        10464, 10464, 10464, 10464, 10464, 10464, 10472, 10480, 10488, 10496, 10504, 10504, 10504,
        10512, 10520, 10520, 10520, 10528, 10536, 10536, 10536, 10536, 10536, 10536, 10536, 10544,
        10552, 10552, 10552, 10560, 10568, 10568, 10568, 10576, 10584, 10584, 10584, 10584, 10584,
        10584, 10584, 10584, 10584, 10584, 10584, 10584, 10584, 10584, 10584, 10584, 10584, 10584,
        10584, 10584, 10584, 10584, 10584, 10584, 10584, 10584, 10584, 10584, 10584, 10584, 10584,
        10584, 10584, 10584, 10584, 10592, 10600, 10608, 10616, 10616, 10616, 10616, 10616, 10616,
        10616, 10616, 10616, 10616, 10616, 10616, 10616, 10616, 10616, 10616, 10616, 10616, 10616,
        10616, 10616, 10616, 10616, 10616, 10616, 10616, 10616, 10616, 10616, 10616, 10616, 10616,
        10616, 10616, 10616, 10616, 10616, 10616, 10616, 10616, 10616, 10616, 10616, 10616, 10616,
        10616, 10616, 10616, 10616, 10624, 10632, 10640, 10648, 10648, 10648, 10648, 10648, 10648,
        10648, 10656, 10664, 10672, 10680, 10680, 10680, 10680, 10680, 10680, 10680, 10680, 10680,
        10680, 10680, 10680, 10680, 10680, 10680, 10680, 10680, 10680, 10680,
    ],
    [
        10680, 10680, 10680, 10680, 10680, 10680, 10680, 10680, 10680, 10680, 10680, 10680, 10680,
        10680, 10680, 10680, 10680, 10680, 10680, 10680, 10680, 10680, 10680, 10680, 10680, 10680,
        10680, 10680, 10680, 10680, 10680, 10680, 10680, 10680, 10680, 10680, 10680, 10680, 10680,
        10680, 10680, 10680, 10684, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688,
        10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688,
        10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688,
        10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688,
        10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688,
        10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688,
        10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688,
        10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688,
        10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688,
        10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688,
        10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688,
        10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688,
        10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688,
        10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688,
        10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688,
        10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688,
        10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688,
    ],
    [
        10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688,
        10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688,
        10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688,
        10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688,
        10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688,
        10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688,
        10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688, 10688,
        10688, 10688, 10688, 10688, 10688, 10689, 10693, 10697, 10701, 10705, 10709, 10713, 10717,
        10721, 10725, 10733, 10741, 10749, 10757, 10765, 10773, 10781, 10789, 10797, 10805, 10813,
        10825, 10837, 10849, 10861, 10873, 10885, 10897, 10909, 10921, 10937, 10953, 10969, 10985,
        11001, 11017, 11033, 11049, 11065, 11081, 11097, 11105, 11113, 11121, 11129, 11137, 11145,
        11153, 11161, 11169, 11181, 11193, 11205, 11217, 11229, 11241, 11253, 11265, 11277, 11289,
        11301, 11313, 11325, 11337, 11349, 11361, 11373, 11385, 11397, 11409, 11421, 11433, 11445,
        11457, 11469, 11481, 11493, 11505, 11517, 11529, 11541, 11553, 11565, 11577, 11589, 11601,
        11613, 11617, 11621, 11625, 11629, 11633, 11637, 11641, 11645, 11649, 11653, 11657, 11661,
        11665, 11669, 11673, 11677, 11681, 11685, 11689, 11693, 11697, 11701, 11705, 11709, 11713,
        11717, 11721, 11725, 11729, 11733, 11737, 11741, 11745, 11749, 11753, 11757, 11761, 11765,
        11769, 11773, 11777, 11781, 11785, 11789, 11793, 11797, 11801, 11805, 11809, 11813, 11817,
        11821, 11824, 11824, 11824, 11824, 11824, 11824, 11824, 11824, 11824, 11824, 11824, 11824,
        11824, 11824, 11824, 11824, 11824, 11824, 11824, 11824, 11824, 11824,
    ],
    [
        11824, 11824, 11824, 11824, 11824, 11824, 11824, 11824, 11824, 11824, 11824, 11824, 11825,
        11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840,
        11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840,
        11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840,
        11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840,
        11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840,
        11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840,
        11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840,
        11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11840, 11841,
        11853, 11861, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872,
        11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872,
        11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872,
        11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872,
        11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872,
        11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872,
        11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872,
        11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872, 11872,
        11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880,
        11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880,
        11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880,
    ],
    [
        11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880,
        11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880,
        11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880,
        11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880,
        11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880,
        11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880,
        11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880,
        11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880,
        11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880, 11880,
        11880, 11880, 11880, 11880, 11880, 11880, 11880, 11881, 11885, 11888, 11888, 11888, 11888,
        11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888,
        11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888,
        11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888,
        11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888,
        11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888,
        11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888,
        11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888,
        11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888,
        11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888,
        11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888,
    ],
    [
        11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888,
        11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888,
        11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888,
        11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888,
        11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888,
        11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888,
        11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888,
        11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888, 11888,
        11888, 11888, 11888, 11888, 11888, 11888, 11888, 11889, 11892, 11892, 11892, 11892, 11892,
        11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892,
        11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892,
        11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892,
        11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892,
        11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892,
        11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892,
        11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892,
        11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892,
        11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892,
        11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892,
        11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892,
    ],
    [
        11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892,
        11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892,
        11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892,
        11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892,
        11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892,
        11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892,
        11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892,
        11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892,
        11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892,
        11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892,
        11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892,
        11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892, 11892,
        11892, 11892, 11892, 11893, 11896, 11896, 11896, 11896, 11896, 11896, 11896, 11896, 11896,
        11896, 11896, 11896, 11896, 11896, 11896, 11896, 11896, 11896, 11896, 11896, 11896, 11896,
        11896, 11896, 11896, 11896, 11896, 11896, 11896, 11896, 11896, 11896, 11896, 11896, 11896,
        11896, 11896, 11896, 11896, 11896, 11896, 11896, 11896, 11896, 11896, 11896, 11896, 11896,
        11896, 11896, 11896, 11896, 11896, 11896, 11896, 11896, 11896, 11896, 11896, 11896, 11896,
        11896, 11896, 11896, 11896, 11896, 11896, 11896, 11896, 11896, 11896, 11896, 11896, 11896,
        11896, 11896, 11896, 11896, 11896, 11896, 11896, 11896, 11896, 11897, 11900, 11900, 11900,
        11900, 11900, 11900, 11900, 11900, 11900, 11900, 11900, 11900, 11901,
    ],
    [
        11901, 11905, 11909, 11913, 11917, 11921, 11925, 11929, 11933, 11937, 11941, 11945, 11949,
        11953, 11957, 11961, 11965, 11969, 11973, 11977, 11981, 11985, 11989, 11993, 11997, 12001,
        12005, 12009, 12013, 12017, 12021, 12025, 12029, 12033, 12037, 12041, 12045, 12049, 12053,
        12057, 12061, 12065, 12069, 12073, 12077, 12081, 12085, 12089, 12093, 12097, 12101, 12105,
        12109, 12113, 12117, 12121, 12125, 12129, 12133, 12137, 12141, 12145, 12149, 12153, 12157,
        12161, 12165, 12169, 12173, 12177, 12181, 12185, 12189, 12193, 12197, 12201, 12205, 12209,
        12213, 12217, 12221, 12225, 12229, 12233, 12237, 12241, 12245, 12249, 12253, 12257, 12261,
        12265, 12269, 12273, 12277, 12281, 12285, 12289, 12293, 12297, 12301, 12305, 12309, 12313,
        12317, 12321, 12325, 12329, 12333, 12337, 12341, 12345, 12349, 12353, 12357, 12361, 12365,
        12369, 12373, 12377, 12381, 12385, 12389, 12393, 12397, 12401, 12405, 12409, 12413, 12417,
        12421, 12425, 12429, 12433, 12437, 12441, 12445, 12449, 12453, 12457, 12461, 12465, 12469,
        12473, 12477, 12481, 12485, 12489, 12493, 12497, 12501, 12505, 12509, 12513, 12517, 12521,
        12525, 12529, 12533, 12537, 12541, 12545, 12549, 12553, 12557, 12561, 12565, 12569, 12573,
        12577, 12581, 12585, 12589, 12593, 12597, 12601, 12605, 12609, 12613, 12617, 12621, 12625,
        12629, 12633, 12637, 12641, 12645, 12649, 12653, 12657, 12661, 12665, 12669, 12673, 12677,
        12681, 12685, 12689, 12693, 12697, 12701, 12705, 12709, 12713, 12717, 12721, 12725, 12729,
        12733, 12737, 12741, 12745, 12749, 12753, 12756, 12756, 12756, 12756, 12756, 12756, 12756,
        12756, 12756, 12756, 12756, 12756, 12756, 12756, 12756, 12756, 12756, 12756, 12756, 12756,
        12756, 12756, 12756, 12756, 12756, 12756, 12756, 12756, 12756, 12756, 12756, 12756, 12756,
        12756, 12756, 12756, 12756, 12756, 12756, 12756, 12756, 12756, 12757,
    ],
    [
        12757, 12760, 12760, 12760, 12760, 12760, 12760, 12760, 12760, 12760, 12760, 12760, 12760,
        12760, 12760, 12760, 12760, 12760, 12760, 12760, 12760, 12760, 12760, 12760, 12760, 12760,
        12760, 12760, 12760, 12760, 12760, 12760, 12760, 12760, 12760, 12760, 12760, 12760, 12760,
        12760, 12760, 12760, 12760, 12760, 12760, 12760, 12760, 12760, 12760, 12760, 12760, 12760,
        12760, 12760, 12761, 12764, 12765, 12769, 12773, 12776, 12776, 12776, 12776, 12776, 12776,
        12776, 12776, 12776, 12776, 12776, 12776, 12776, 12776, 12776, 12776, 12776, 12776, 12784,
        12784, 12792, 12792, 12800, 12800, 12808, 12808, 12816, 12816, 12824, 12824, 12832, 12832,
        12840, 12840, 12848, 12848, 12856, 12856, 12864, 12864, 12872, 12872, 12872, 12880, 12880,
        12888, 12888, 12896, 12896, 12896, 12896, 12896, 12896, 12896, 12904, 12912, 12912, 12920,
        12928, 12928, 12936, 12944, 12944, 12952, 12960, 12960, 12968, 12976, 12976, 12976, 12976,
        12976, 12976, 12976, 12976, 12976, 12976, 12976, 12976, 12976, 12976, 12976, 12976, 12976,
        12976, 12976, 12976, 12976, 12976, 12976, 12984, 12984, 12984, 12984, 12984, 12984, 12985,
        12993, 13000, 13000, 13009, 13016, 13016, 13016, 13016, 13016, 13016, 13016, 13016, 13016,
        13016, 13016, 13016, 13016, 13024, 13024, 13032, 13032, 13040, 13040, 13048, 13048, 13056,
        13056, 13064, 13064, 13072, 13072, 13080, 13080, 13088, 13088, 13096, 13096, 13104, 13104,
        13112, 13112, 13112, 13120, 13120, 13128, 13128, 13136, 13136, 13136, 13136, 13136, 13136,
        13136, 13144, 13152, 13152, 13160, 13168, 13168, 13176, 13184, 13184, 13192, 13200, 13200,
        13208, 13216, 13216, 13216, 13216, 13216, 13216, 13216, 13216, 13216, 13216, 13216, 13216,
        13216, 13216, 13216, 13216, 13216, 13216, 13216, 13216, 13216, 13216, 13216, 13224, 13224,
        13224, 13232, 13240, 13248, 13256, 13256, 13256, 13256, 13265, 13272,
    ],
    [
        13272, 13272, 13272, 13272, 13272, 13272, 13272, 13272, 13272, 13272, 13272, 13272, 13272,
        13272, 13272, 13272, 13272, 13272, 13272, 13272, 13272, 13272, 13272, 13272, 13272, 13272,
        13272, 13272, 13272, 13272, 13272, 13272, 13272, 13272, 13272, 13272, 13272, 13272, 13272,
        13272, 13272, 13272, 13272, 13272, 13272, 13272, 13272, 13272, 13272, 13273, 13277, 13281,
        13285, 13289, 13293, 13297, 13301, 13305, 13309, 13313, 13317, 13321, 13325, 13329, 13333,
        13337, 13341, 13345, 13349, 13353, 13357, 13361, 13365, 13369, 13373, 13377, 13381, 13385,
        13389, 13393, 13397, 13401, 13405, 13409, 13413, 13417, 13421, 13425, 13429, 13433, 13437,
        13441, 13445, 13449, 13453, 13457, 13461, 13465, 13469, 13473, 13477, 13481, 13485, 13489,
        13493, 13497, 13501, 13505, 13509, 13513, 13517, 13521, 13525, 13529, 13533, 13537, 13541,
        13545, 13549, 13553, 13557, 13561, 13565, 13569, 13573, 13577, 13581, 13585, 13589, 13593,
        13597, 13601, 13605, 13609, 13613, 13617, 13621, 13625, 13629, 13633, 13637, 13641, 13645,
        13648, 13648, 13648, 13649, 13653, 13657, 13661, 13665, 13669, 13673, 13677, 13681, 13685,
        13689, 13693, 13697, 13701, 13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704,
        13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704,
        13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704,
        13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704,
        13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704,
        13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704,
        13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704,
        13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704, 13704, 13705,
    ],
    [
        13705, 13717, 13729, 13741, 13753, 13765, 13777, 13789, 13801, 13813, 13825, 13837, 13849,
        13861, 13873, 13889, 13905, 13921, 13937, 13953, 13969, 13985, 14001, 14017, 14033, 14049,
        14065, 14081, 14097, 14113, 14141, 14164, 14165, 14177, 14189, 14201, 14213, 14225, 14237,
        14249, 14261, 14273, 14285, 14297, 14309, 14321, 14333, 14345, 14357, 14369, 14381, 14393,
        14405, 14417, 14429, 14441, 14453, 14465, 14477, 14489, 14501, 14513, 14525, 14537, 14549,
        14561, 14573, 14585, 14597, 14601, 14605, 14609, 14612, 14612, 14612, 14612, 14612, 14612,
        14612, 14612, 14613, 14625, 14633, 14641, 14649, 14657, 14665, 14673, 14681, 14689, 14697,
        14705, 14713, 14721, 14729, 14737, 14745, 14749, 14753, 14757, 14761, 14765, 14769, 14773,
        14777, 14781, 14785, 14789, 14793, 14797, 14801, 14809, 14817, 14825, 14833, 14841, 14849,
        14857, 14865, 14873, 14881, 14889, 14897, 14905, 14913, 14933, 14949, 14956, 14957, 14961,
        14965, 14969, 14973, 14977, 14981, 14985, 14989, 14993, 14997, 15001, 15005, 15009, 15013,
        15017, 15021, 15025, 15029, 15033, 15037, 15041, 15045, 15049, 15053, 15057, 15061, 15065,
        15069, 15073, 15077, 15081, 15085, 15089, 15093, 15097, 15101, 15105, 15109, 15113, 15117,
        15121, 15125, 15129, 15133, 15137, 15141, 15145, 15149, 15153, 15161, 15169, 15177, 15185,
        15193, 15201, 15209, 15217, 15225, 15233, 15241, 15249, 15257, 15265, 15273, 15281, 15289,
        15297, 15305, 15313, 15321, 15329, 15337, 15345, 15357, 15369, 15381, 15389, 15401, 15409,
        15421, 15425, 15429, 15433, 15437, 15441, 15445, 15449, 15453, 15457, 15461, 15465, 15469,
        15473, 15477, 15481, 15485, 15489, 15493, 15497, 15501, 15505, 15509, 15513, 15517, 15521,
        15525, 15529, 15533, 15537, 15541, 15545, 15549, 15553, 15557, 15561, 15565, 15569, 15573,
        15577, 15581, 15585, 15589, 15593, 15597, 15601, 15605, 15609, 15617,
    ],
    [
        15617, 15637, 15653, 15673, 15685, 15705, 15717, 15729, 15753, 15769, 15781, 15793, 15805,
        15821, 15837, 15853, 15869, 15885, 15901, 15917, 15941, 15949, 15973, 15997, 16017, 16033,
        16057, 16081, 16097, 16109, 16121, 16137, 16153, 16173, 16193, 16205, 16217, 16233, 16245,
        16257, 16265, 16273, 16285, 16297, 16321, 16337, 16357, 16381, 16397, 16409, 16421, 16445,
        16461, 16485, 16497, 16517, 16529, 16545, 16557, 16573, 16593, 16609, 16629, 16645, 16653,
        16673, 16685, 16697, 16713, 16725, 16737, 16749, 16769, 16785, 16793, 16817, 16829, 16849,
        16865, 16881, 16893, 16905, 16921, 16929, 16945, 16965, 16973, 16997, 17009, 17017, 17025,
        17033, 17041, 17049, 17057, 17065, 17073, 17081, 17089, 17101, 17113, 17125, 17137, 17149,
        17161, 17173, 17185, 17197, 17209, 17221, 17233, 17245, 17257, 17269, 17281, 17289, 17297,
        17309, 17317, 17325, 17333, 17345, 17357, 17365, 17373, 17381, 17389, 17397, 17413, 17421,
        17429, 17437, 17445, 17453, 17461, 17469, 17477, 17489, 17505, 17513, 17521, 17529, 17537,
        17545, 17553, 17561, 17573, 17585, 17597, 17609, 17617, 17625, 17633, 17641, 17649, 17657,
        17665, 17673, 17681, 17689, 17701, 17713, 17721, 17733, 17745, 17757, 17765, 17777, 17789,
        17805, 17813, 17825, 17837, 17849, 17861, 17881, 17905, 17913, 17921, 17929, 17937, 17945,
        17953, 17961, 17969, 17977, 17985, 17993, 18001, 18009, 18017, 18025, 18033, 18041, 18049,
        18065, 18073, 18081, 18089, 18105, 18117, 18125, 18133, 18141, 18149, 18157, 18165, 18173,
        18181, 18189, 18197, 18209, 18217, 18225, 18237, 18249, 18257, 18273, 18285, 18293, 18301,
        18309, 18317, 18329, 18341, 18349, 18357, 18365, 18373, 18381, 18389, 18397, 18405, 18413,
        18425, 18437, 18449, 18461, 18473, 18485, 18497, 18509, 18521, 18533, 18545, 18557, 18569,
        18581, 18593, 18605, 18617, 18629, 18641, 18653, 18665, 18677, 18688,
    ],
    [
        18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688,
        18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688,
        18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688,
        18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688,
        18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688,
        18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688,
        18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688,
        18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688,
        18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688,
        18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688,
        18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688,
        18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688, 18688,
        18689, 18693, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696,
        18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696,
        18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696,
        18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696,
        18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696,
        18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696,
        18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696,
        18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696,
    ],
    [
        18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696,
        18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696,
        18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696,
        18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696,
        18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696,
        18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696,
        18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696,
        18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696,
        18696, 18696, 18696, 18696, 18696, 18696, 18696, 18696, 18697, 18700, 18700, 18700, 18700,
        18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700,
        18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700,
        18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700,
        18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700,
        18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700,
        18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700,
        18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700,
        18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700,
        18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700,
        18700, 18700, 18700, 18700, 18700, 18700, 18700, 18700, 18701, 18705, 18709, 18712, 18712,
        18712, 18713, 18717, 18720, 18720, 18720, 18720, 18720, 18720, 18720,
    ],
    [
        18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720,
        18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720,
        18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720,
        18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720,
        18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720,
        18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720,
        18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720, 18720,
        18720, 18721, 18725, 18729, 18733, 18736, 18736, 18736, 18736, 18736, 18736, 18736, 18736,
        18736, 18737, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740,
        18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740,
        18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740,
        18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740,
        18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740,
        18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740,
        18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740,
        18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740,
        18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740,
        18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740,
        18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740,
        18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740, 18740,
    ],
    [
        18740, 18744, 18748, 18752, 18756, 18760, 18764, 18768, 18772, 18776, 18780, 18784, 18788,
        18792, 18796, 18800, 18804, 18808, 18812, 18816, 18820, 18824, 18828, 18832, 18836, 18840,
        18844, 18848, 18852, 18856, 18860, 18864, 18868, 18872, 18876, 18880, 18884, 18888, 18892,
        18896, 18900, 18904, 18908, 18912, 18916, 18920, 18924, 18928, 18932, 18936, 18940, 18944,
        18948, 18952, 18956, 18960, 18964, 18968, 18972, 18976, 18980, 18984, 18988, 18992, 18996,
        19000, 19004, 19008, 19012, 19016, 19020, 19024, 19028, 19032, 19036, 19040, 19044, 19048,
        19052, 19056, 19060, 19064, 19068, 19072, 19076, 19080, 19084, 19088, 19092, 19096, 19100,
        19104, 19108, 19112, 19116, 19120, 19124, 19128, 19132, 19136, 19140, 19144, 19148, 19152,
        19156, 19160, 19164, 19168, 19172, 19176, 19180, 19184, 19188, 19192, 19196, 19200, 19204,
        19208, 19212, 19216, 19220, 19224, 19228, 19232, 19236, 19240, 19244, 19248, 19252, 19256,
        19260, 19264, 19268, 19272, 19276, 19280, 19284, 19288, 19292, 19296, 19300, 19304, 19308,
        19312, 19316, 19320, 19324, 19328, 19332, 19336, 19340, 19344, 19348, 19352, 19356, 19360,
        19364, 19368, 19372, 19376, 19380, 19384, 19388, 19392, 19396, 19400, 19404, 19408, 19412,
        19416, 19420, 19424, 19428, 19432, 19436, 19440, 19444, 19448, 19452, 19456, 19460, 19464,
        19468, 19472, 19476, 19480, 19484, 19488, 19492, 19496, 19500, 19504, 19508, 19512, 19516,
        19520, 19524, 19528, 19532, 19536, 19540, 19544, 19548, 19552, 19556, 19560, 19564, 19568,
        19572, 19576, 19580, 19584, 19588, 19592, 19596, 19600, 19604, 19608, 19612, 19616, 19620,
        19624, 19628, 19632, 19636, 19640, 19644, 19648, 19652, 19656, 19660, 19664, 19668, 19672,
        19676, 19680, 19684, 19688, 19692, 19696, 19700, 19704, 19708, 19712, 19716, 19720, 19724,
        19728, 19732, 19736, 19740, 19744, 19748, 19752, 19756, 19760, 19764,
    ],
    [
        19764, 19768, 19772, 19776, 19780, 19784, 19788, 19792, 19796, 19800, 19804, 19808, 19812,
        19816, 19820, 19820, 19820, 19824, 19824, 19828, 19828, 19828, 19832, 19836, 19840, 19844,
        19848, 19852, 19856, 19860, 19864, 19868, 19868, 19872, 19872, 19876, 19876, 19876, 19880,
        19884, 19884, 19884, 19884, 19888, 19892, 19896, 19900, 19904, 19908, 19912, 19916, 19920,
        19924, 19928, 19932, 19936, 19940, 19944, 19948, 19952, 19956, 19960, 19964, 19968, 19972,
        19976, 19980, 19984, 19988, 19992, 19996, 20000, 20004, 20008, 20012, 20016, 20020, 20024,
        20028, 20032, 20036, 20040, 20044, 20048, 20052, 20056, 20060, 20064, 20068, 20072, 20076,
        20080, 20084, 20088, 20092, 20096, 20100, 20104, 20108, 20112, 20116, 20120, 20124, 20128,
        20132, 20136, 20140, 20144, 20148, 20152, 20156, 20156, 20156, 20160, 20164, 20168, 20172,
        20176, 20180, 20184, 20188, 20192, 20196, 20200, 20204, 20208, 20212, 20216, 20220, 20224,
        20228, 20232, 20236, 20240, 20244, 20248, 20252, 20256, 20260, 20264, 20268, 20272, 20276,
        20280, 20284, 20288, 20292, 20296, 20300, 20304, 20308, 20312, 20316, 20320, 20324, 20328,
        20332, 20336, 20340, 20344, 20348, 20352, 20356, 20360, 20364, 20368, 20372, 20376, 20380,
        20384, 20388, 20392, 20396, 20400, 20404, 20408, 20412, 20416, 20420, 20424, 20428, 20432,
        20436, 20440, 20444, 20448, 20452, 20456, 20460, 20464, 20468, 20472, 20476, 20480, 20484,
        20488, 20492, 20496, 20500, 20504, 20508, 20512, 20516, 20520, 20524, 20528, 20532, 20536,
        20540, 20544, 20548, 20552, 20556, 20560, 20564, 20568, 20572, 20576, 20580, 20580, 20580,
        20580, 20580, 20580, 20580, 20580, 20580, 20580, 20580, 20580, 20580, 20580, 20580, 20580,
        20580, 20580, 20580, 20580, 20580, 20580, 20580, 20580, 20580, 20580, 20580, 20580, 20580,
        20580, 20580, 20580, 20580, 20580, 20580, 20580, 20580, 20580, 20581,
    ],
    [
        20581, 20589, 20597, 20605, 20617, 20629, 20637, 20644, 20644, 20644, 20644, 20644, 20644,
        20644, 20644, 20644, 20644, 20644, 20644, 20645, 20653, 20661, 20669, 20677, 20684, 20684,
        20684, 20684, 20684, 20684, 20692, 20692, 20701, 20705, 20709, 20713, 20717, 20721, 20725,
        20729, 20733, 20737, 20740, 20748, 20756, 20768, 20780, 20788, 20796, 20804, 20812, 20820,
        20828, 20836, 20844, 20852, 20852, 20860, 20868, 20876, 20884, 20892, 20892, 20900, 20900,
        20908, 20916, 20916, 20924, 20932, 20932, 20940, 20948, 20956, 20964, 20972, 20980, 20988,
        20996, 21005, 21013, 21017, 21021, 21025, 21029, 21033, 21037, 21041, 21045, 21049, 21053,
        21057, 21061, 21065, 21069, 21073, 21077, 21081, 21085, 21089, 21093, 21097, 21101, 21105,
        21109, 21113, 21117, 21121, 21125, 21129, 21133, 21137, 21141, 21145, 21149, 21153, 21157,
        21161, 21165, 21169, 21173, 21177, 21181, 21185, 21189, 21193, 21197, 21201, 21205, 21209,
        21213, 21217, 21221, 21225, 21229, 21233, 21237, 21241, 21245, 21249, 21253, 21257, 21261,
        21265, 21269, 21273, 21277, 21281, 21285, 21289, 21293, 21297, 21301, 21305, 21309, 21313,
        21317, 21321, 21325, 21329, 21333, 21337, 21341, 21345, 21349, 21357, 21365, 21369, 21373,
        21377, 21381, 21385, 21389, 21393, 21397, 21401, 21405, 21413, 21420, 21420, 21420, 21420,
        21420, 21420, 21420, 21420, 21420, 21420, 21420, 21420, 21420, 21420, 21420, 21420, 21420,
        21420, 21420, 21420, 21420, 21420, 21420, 21420, 21420, 21420, 21420, 21420, 21420, 21420,
        21420, 21420, 21420, 21421, 21425, 21429, 21433, 21437, 21441, 21445, 21449, 21453, 21457,
        21461, 21469, 21473, 21477, 21481, 21485, 21489, 21493, 21497, 21501, 21505, 21509, 21513,
        21517, 21529, 21541, 21553, 21565, 21577, 21589, 21601, 21613, 21625, 21637, 21649, 21661,
        21673, 21685, 21697, 21709, 21721, 21733, 21737, 21741, 21745, 21749,
    ],
    [
        21749, 21761, 21773, 21785, 21797, 21809, 21817, 21825, 21833, 21841, 21849, 21857, 21865,
        21873, 21881, 21889, 21897, 21905, 21913, 21921, 21929, 21937, 21945, 21953, 21961, 21969,
        21977, 21985, 21993, 22001, 22009, 22017, 22025, 22033, 22041, 22049, 22057, 22065, 22073,
        22081, 22089, 22097, 22105, 22113, 22121, 22129, 22137, 22145, 22153, 22161, 22169, 22177,
        22185, 22193, 22201, 22209, 22217, 22225, 22233, 22241, 22249, 22257, 22265, 22273, 22281,
        22289, 22297, 22305, 22313, 22321, 22329, 22337, 22345, 22353, 22361, 22369, 22377, 22385,
        22393, 22401, 22409, 22417, 22425, 22433, 22441, 22449, 22457, 22465, 22473, 22481, 22489,
        22497, 22505, 22513, 22521, 22533, 22545, 22557, 22569, 22581, 22593, 22605, 22617, 22629,
        22641, 22653, 22665, 22673, 22681, 22689, 22697, 22705, 22713, 22721, 22729, 22737, 22745,
        22753, 22761, 22769, 22777, 22785, 22793, 22801, 22809, 22817, 22825, 22833, 22841, 22849,
        22857, 22865, 22873, 22881, 22889, 22897, 22905, 22913, 22921, 22929, 22937, 22945, 22953,
        22961, 22969, 22977, 22985, 22993, 23001, 23009, 23017, 23025, 23037, 23049, 23061, 23073,
        23085, 23093, 23101, 23109, 23117, 23125, 23133, 23141, 23149, 23157, 23165, 23173, 23181,
        23189, 23197, 23205, 23213, 23221, 23229, 23237, 23245, 23253, 23261, 23269, 23277, 23285,
        23293, 23301, 23309, 23317, 23325, 23333, 23341, 23349, 23357, 23365, 23373, 23381, 23389,
        23397, 23405, 23413, 23421, 23429, 23437, 23445, 23453, 23461, 23469, 23477, 23485, 23493,
        23501, 23509, 23517, 23525, 23533, 23541, 23549, 23557, 23565, 23573, 23581, 23589, 23597,
        23605, 23613, 23621, 23633, 23645, 23653, 23661, 23669, 23677, 23685, 23693, 23701, 23709,
        23717, 23725, 23733, 23741, 23749, 23757, 23765, 23773, 23781, 23793, 23805, 23817, 23825,
        23833, 23841, 23849, 23857, 23865, 23873, 23881, 23889, 23897, 23905,
    ],
    [
        23905, 23913, 23921, 23929, 23937, 23945, 23953, 23961, 23969, 23977, 23985, 23993, 24001,
        24009, 24017, 24025, 24033, 24041, 24049, 24057, 24065, 24073, 24081, 24089, 24097, 24105,
        24113, 24121, 24129, 24137, 24145, 24153, 24161, 24169, 24177, 24185, 24193, 24201, 24209,
        24217, 24225, 24233, 24241, 24249, 24257, 24265, 24273, 24281, 24289, 24297, 24305, 24313,
        24321, 24329, 24337, 24345, 24353, 24361, 24369, 24377, 24385, 24393, 24400, 24400, 24400,
        24400, 24400, 24400, 24400, 24400, 24400, 24400, 24400, 24400, 24400, 24400, 24400, 24400,
        24400, 24400, 24401, 24413, 24425, 24437, 24449, 24461, 24473, 24485, 24497, 24509, 24521,
        24533, 24545, 24557, 24569, 24581, 24593, 24605, 24617, 24629, 24641, 24653, 24665, 24677,
        24689, 24701, 24713, 24725, 24737, 24749, 24761, 24773, 24785, 24797, 24809, 24821, 24833,
        24845, 24857, 24869, 24881, 24893, 24905, 24917, 24929, 24941, 24953, 24965, 24977, 24989,
        25001, 25013, 25025, 25037, 25049, 25061, 25073, 25085, 25097, 25109, 25121, 25133, 25145,
        25157, 25168, 25168, 25169, 25181, 25193, 25205, 25217, 25229, 25241, 25253, 25265, 25277,
        25289, 25301, 25313, 25325, 25337, 25349, 25361, 25373, 25385, 25397, 25409, 25421, 25433,
        25445, 25457, 25469, 25481, 25493, 25505, 25517, 25529, 25541, 25553, 25565, 25577, 25589,
        25601, 25613, 25625, 25637, 25649, 25661, 25673, 25685, 25697, 25709, 25721, 25733, 25745,
        25757, 25769, 25781, 25793, 25805, 25816, 25816, 25816, 25816, 25816, 25816, 25816, 25816,
        25816, 25816, 25816, 25816, 25816, 25816, 25816, 25816, 25816, 25816, 25816, 25816, 25816,
        25816, 25816, 25816, 25816, 25816, 25816, 25816, 25816, 25816, 25816, 25816, 25816, 25816,
        25816, 25816, 25816, 25816, 25816, 25816, 25817, 25829, 25841, 25857, 25873, 25889, 25905,
        25921, 25937, 25953, 25965, 26037, 26069, 26084, 26084, 26084, 26084,
    ],
    [
        26084, 26084, 26084, 26084, 26084, 26084, 26084, 26084, 26084, 26084, 26084, 26084, 26084,
        26084, 26084, 26084, 26085, 26089, 26093, 26097, 26101, 26105, 26109, 26113, 26117, 26121,
        26132, 26132, 26132, 26132, 26132, 26132, 26132, 26132, 26132, 26132, 26132, 26132, 26132,
        26132, 26132, 26132, 26132, 26132, 26132, 26132, 26132, 26132, 26133, 26141, 26145, 26149,
        26153, 26157, 26161, 26165, 26169, 26173, 26177, 26181, 26185, 26189, 26193, 26197, 26201,
        26205, 26209, 26213, 26217, 26220, 26220, 26221, 26225, 26229, 26237, 26245, 26253, 26261,
        26265, 26269, 26273, 26277, 26281, 26284, 26285, 26289, 26293, 26297, 26301, 26305, 26309,
        26313, 26317, 26321, 26325, 26329, 26333, 26337, 26341, 26345, 26349, 26353, 26357, 26360,
        26361, 26365, 26369, 26373, 26376, 26376, 26376, 26376, 26377, 26385, 26393, 26400, 26401,
        26408, 26409, 26417, 26425, 26433, 26441, 26449, 26457, 26465, 26473, 26481, 26489, 26493,
        26501, 26509, 26517, 26525, 26533, 26541, 26549, 26557, 26565, 26573, 26581, 26589, 26593,
        26597, 26601, 26605, 26609, 26613, 26617, 26621, 26625, 26629, 26633, 26637, 26641, 26645,
        26649, 26653, 26657, 26661, 26665, 26669, 26673, 26677, 26681, 26685, 26689, 26693, 26697,
        26701, 26705, 26709, 26713, 26717, 26721, 26725, 26729, 26733, 26737, 26741, 26745, 26749,
        26753, 26757, 26761, 26765, 26769, 26773, 26777, 26781, 26785, 26789, 26793, 26797, 26801,
        26805, 26809, 26813, 26817, 26821, 26825, 26829, 26833, 26837, 26841, 26845, 26849, 26853,
        26857, 26861, 26865, 26869, 26873, 26877, 26881, 26885, 26889, 26893, 26897, 26901, 26905,
        26909, 26913, 26917, 26921, 26925, 26929, 26933, 26937, 26941, 26945, 26949, 26953, 26957,
        26961, 26965, 26969, 26973, 26977, 26981, 26985, 26989, 26993, 26997, 27001, 27005, 27017,
        27029, 27041, 27053, 27065, 27077, 27085, 27092, 27092, 27092, 27092,
    ],
    [
        27092, 27093, 27097, 27101, 27105, 27109, 27113, 27117, 27121, 27125, 27129, 27133, 27137,
        27141, 27145, 27149, 27153, 27157, 27161, 27165, 27169, 27173, 27177, 27181, 27185, 27189,
        27193, 27197, 27201, 27205, 27209, 27213, 27217, 27221, 27225, 27229, 27233, 27237, 27241,
        27245, 27249, 27253, 27257, 27261, 27265, 27269, 27273, 27277, 27281, 27285, 27289, 27293,
        27297, 27301, 27305, 27309, 27313, 27317, 27321, 27325, 27329, 27333, 27337, 27341, 27345,
        27349, 27353, 27357, 27361, 27365, 27369, 27373, 27377, 27381, 27385, 27389, 27393, 27397,
        27401, 27405, 27409, 27413, 27417, 27421, 27425, 27429, 27433, 27437, 27441, 27445, 27449,
        27453, 27457, 27461, 27465, 27469, 27473, 27477, 27481, 27485, 27489, 27493, 27497, 27501,
        27505, 27509, 27513, 27517, 27521, 27525, 27529, 27533, 27537, 27541, 27545, 27549, 27553,
        27557, 27561, 27565, 27569, 27573, 27577, 27581, 27585, 27589, 27593, 27597, 27601, 27605,
        27609, 27613, 27617, 27621, 27625, 27629, 27633, 27637, 27641, 27645, 27649, 27653, 27657,
        27661, 27665, 27669, 27673, 27677, 27681, 27685, 27689, 27693, 27697, 27701, 27705, 27709,
        27713, 27717, 27721, 27725, 27729, 27733, 27737, 27741, 27745, 27749, 27753, 27757, 27761,
        27765, 27769, 27773, 27777, 27781, 27785, 27789, 27793, 27797, 27801, 27805, 27809, 27813,
        27817, 27821, 27825, 27829, 27833, 27837, 27841, 27845, 27849, 27852, 27852, 27852, 27853,
        27857, 27861, 27865, 27869, 27873, 27876, 27876, 27877, 27881, 27885, 27889, 27893, 27897,
        27900, 27900, 27901, 27905, 27909, 27913, 27917, 27921, 27924, 27924, 27925, 27929, 27933,
        27936, 27936, 27936, 27937, 27941, 27945, 27949, 27957, 27961, 27965, 27968, 27969, 27973,
        27977, 27981, 27985, 27989, 27993, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996,
        27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996,
    ],
    [
        27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996,
        27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996,
        27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996,
        27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996,
        27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996,
        27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996,
        27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996,
        27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996,
        27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996,
        27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27996, 27997,
        28001, 28005, 28009, 28013, 28016, 28017, 28021, 28025, 28029, 28033, 28037, 28041, 28045,
        28049, 28053, 28057, 28061, 28065, 28069, 28073, 28077, 28081, 28085, 28089, 28093, 28097,
        28101, 28105, 28109, 28113, 28117, 28121, 28125, 28129, 28133, 28137, 28141, 28145, 28149,
        28153, 28157, 28161, 28165, 28169, 28173, 28177, 28181, 28184, 28185, 28189, 28193, 28197,
        28201, 28205, 28209, 28213, 28217, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220,
        28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220,
        28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220,
        28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220,
        28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220,
        28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220,
    ],
    [
        28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220,
        28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220,
        28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220,
        28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220,
        28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220,
        28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220,
        28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220,
        28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220,
        28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220,
        28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220,
        28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220,
        28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28220, 28228,
        28228, 28236, 28236, 28236, 28236, 28236, 28236, 28236, 28236, 28236, 28236, 28236, 28236,
        28236, 28236, 28236, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244,
        28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244,
        28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244,
        28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244,
        28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244,
        28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244,
        28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244,
    ],
    [
        28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244,
        28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244,
        28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244,
        28244, 28244, 28244, 28244, 28244, 28244, 28244, 28244, 28252, 28260, 28260, 28260, 28260,
        28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260,
        28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260,
        28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260,
        28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260,
        28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260,
        28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260,
        28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260,
        28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260,
        28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260,
        28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260,
        28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260,
        28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260,
        28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260,
        28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260,
        28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260,
        28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260,
    ],
    [
        28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260,
        28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260,
        28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260,
        28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260,
        28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260,
        28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28260, 28268, 28276,
        28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276,
        28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276,
        28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276,
        28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276,
        28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276,
        28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276,
        28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276,
        28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276,
        28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276,
        28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276,
        28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276,
        28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276,
        28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276,
        28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276,
    ],
    [
        28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276,
        28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276,
        28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276,
        28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276,
        28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276,
        28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276,
        28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276,
        28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276,
        28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276,
        28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276,
        28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276,
        28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276,
        28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276,
        28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276, 28276,
        28276, 28276, 28276, 28276, 28276, 28276, 28284, 28292, 28292, 28300, 28300, 28300, 28300,
        28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300,
        28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300,
        28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300,
        28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300,
        28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300,
    ],
    [
        28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300,
        28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300,
        28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300,
        28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300,
        28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300,
        28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300,
        28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300,
        28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300,
        28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300,
        28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300,
        28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300,
        28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300,
        28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300,
        28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300, 28300,
        28300, 28300, 28300, 28300, 28300, 28308, 28316, 28316, 28316, 28316, 28316, 28316, 28316,
        28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316,
        28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316,
        28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316,
        28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316,
        28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316,
    ],
    [
        28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316,
        28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316,
        28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316,
        28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316, 28316,
        28316, 28316, 28316, 28316, 28316, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324,
        28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324,
        28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324,
        28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324,
        28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324,
        28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324,
        28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324,
        28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324,
        28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324,
        28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324,
        28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324,
        28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324,
        28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324,
        28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324,
        28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324,
        28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324,
    ],
    [
        28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324,
        28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324,
        28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324,
        28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324,
        28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324,
        28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324,
        28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324, 28324,
        28324, 28324, 28324, 28324, 28332, 28340, 28352, 28364, 28376, 28388, 28400, 28400, 28400,
        28400, 28400, 28400, 28400, 28400, 28400, 28400, 28400, 28400, 28400, 28400, 28400, 28400,
        28400, 28400, 28400, 28400, 28400, 28400, 28400, 28400, 28400, 28400, 28400, 28400, 28400,
        28400, 28400, 28400, 28400, 28400, 28400, 28400, 28400, 28400, 28400, 28400, 28400, 28400,
        28400, 28400, 28400, 28400, 28400, 28400, 28400, 28400, 28400, 28400, 28400, 28400, 28400,
        28400, 28400, 28400, 28400, 28400, 28400, 28400, 28400, 28400, 28400, 28400, 28400, 28400,
        28400, 28400, 28400, 28400, 28400, 28400, 28400, 28400, 28400, 28400, 28400, 28400, 28400,
        28400, 28400, 28400, 28400, 28400, 28400, 28408, 28416, 28428, 28440, 28452, 28464, 28464,
        28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464,
        28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464,
        28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464,
        28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464,
        28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464,
    ],
    [
        28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464,
        28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464,
        28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464,
        28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464,
        28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464,
        28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464,
        28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464,
        28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464,
        28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464,
        28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464,
        28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464,
        28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464,
        28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464,
        28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464,
        28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464,
        28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464,
        28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464,
        28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464,
        28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464,
        28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28464, 28465,
    ],
    [
        28465, 28469, 28473, 28477, 28481, 28485, 28489, 28493, 28497, 28501, 28505, 28509, 28513,
        28517, 28521, 28525, 28529, 28533, 28537, 28541, 28545, 28549, 28553, 28557, 28561, 28565,
        28569, 28573, 28577, 28581, 28585, 28589, 28593, 28597, 28601, 28605, 28609, 28613, 28617,
        28621, 28625, 28629, 28633, 28637, 28641, 28645, 28649, 28653, 28657, 28661, 28665, 28669,
        28673, 28677, 28681, 28685, 28689, 28693, 28697, 28701, 28705, 28709, 28713, 28717, 28721,
        28725, 28729, 28733, 28737, 28741, 28745, 28749, 28753, 28757, 28761, 28765, 28769, 28773,
        28777, 28781, 28785, 28789, 28793, 28797, 28801, 28804, 28805, 28809, 28813, 28817, 28821,
        28825, 28829, 28833, 28837, 28841, 28845, 28849, 28853, 28857, 28861, 28865, 28869, 28873,
        28877, 28881, 28885, 28889, 28893, 28897, 28901, 28905, 28909, 28913, 28917, 28921, 28925,
        28929, 28933, 28937, 28941, 28945, 28949, 28953, 28957, 28961, 28965, 28969, 28973, 28977,
        28981, 28985, 28989, 28993, 28997, 29001, 29005, 29009, 29013, 29017, 29021, 29025, 29029,
        29033, 29037, 29041, 29045, 29049, 29053, 29057, 29061, 29065, 29069, 29073, 29077, 29081,
        29085, 29088, 29089, 29093, 29096, 29096, 29097, 29100, 29100, 29101, 29105, 29108, 29108,
        29109, 29113, 29117, 29121, 29124, 29125, 29129, 29133, 29137, 29141, 29145, 29149, 29153,
        29157, 29161, 29165, 29169, 29172, 29173, 29176, 29177, 29181, 29185, 29189, 29193, 29197,
        29201, 29204, 29205, 29209, 29213, 29217, 29221, 29225, 29229, 29233, 29237, 29241, 29245,
        29249, 29253, 29257, 29261, 29265, 29269, 29273, 29277, 29281, 29285, 29289, 29293, 29297,
        29301, 29305, 29309, 29313, 29317, 29321, 29325, 29329, 29333, 29337, 29341, 29345, 29349,
        29353, 29357, 29361, 29365, 29369, 29373, 29377, 29381, 29385, 29389, 29393, 29397, 29401,
        29405, 29409, 29413, 29417, 29421, 29425, 29429, 29433, 29437, 29441,
    ],
    [
        29441, 29445, 29449, 29453, 29457, 29461, 29464, 29465, 29469, 29473, 29477, 29480, 29480,
        29481, 29485, 29489, 29493, 29497, 29501, 29505, 29509, 29512, 29513, 29517, 29521, 29525,
        29529, 29533, 29537, 29540, 29541, 29545, 29549, 29553, 29557, 29561, 29565, 29569, 29573,
        29577, 29581, 29585, 29589, 29593, 29597, 29601, 29605, 29609, 29613, 29617, 29621, 29625,
        29629, 29633, 29637, 29641, 29645, 29649, 29652, 29653, 29657, 29661, 29665, 29668, 29669,
        29673, 29677, 29681, 29685, 29688, 29689, 29692, 29692, 29692, 29693, 29697, 29701, 29705,
        29709, 29713, 29717, 29720, 29721, 29725, 29729, 29733, 29737, 29741, 29745, 29749, 29753,
        29757, 29761, 29765, 29769, 29773, 29777, 29781, 29785, 29789, 29793, 29797, 29801, 29805,
        29809, 29813, 29817, 29821, 29825, 29829, 29833, 29837, 29841, 29845, 29849, 29853, 29857,
        29861, 29865, 29869, 29873, 29877, 29881, 29885, 29889, 29893, 29897, 29901, 29905, 29909,
        29913, 29917, 29921, 29925, 29929, 29933, 29937, 29941, 29945, 29949, 29953, 29957, 29961,
        29965, 29969, 29973, 29977, 29981, 29985, 29989, 29993, 29997, 30001, 30005, 30009, 30013,
        30017, 30021, 30025, 30029, 30033, 30037, 30041, 30045, 30049, 30053, 30057, 30061, 30065,
        30069, 30073, 30077, 30081, 30085, 30089, 30093, 30097, 30101, 30105, 30109, 30113, 30117,
        30121, 30125, 30129, 30133, 30137, 30141, 30145, 30149, 30153, 30157, 30161, 30165, 30169,
        30173, 30177, 30181, 30185, 30189, 30193, 30197, 30201, 30205, 30209, 30213, 30217, 30221,
        30225, 30229, 30233, 30237, 30241, 30245, 30249, 30253, 30257, 30261, 30265, 30269, 30273,
        30277, 30281, 30285, 30289, 30293, 30297, 30301, 30305, 30309, 30313, 30317, 30321, 30325,
        30329, 30333, 30337, 30341, 30345, 30349, 30353, 30357, 30361, 30365, 30369, 30373, 30377,
        30381, 30385, 30389, 30393, 30397, 30401, 30405, 30409, 30413, 30417,
    ],
    [
        30417, 30421, 30425, 30429, 30433, 30437, 30441, 30445, 30449, 30453, 30457, 30461, 30465,
        30469, 30473, 30477, 30481, 30485, 30489, 30493, 30497, 30501, 30505, 30509, 30513, 30517,
        30521, 30525, 30529, 30533, 30537, 30541, 30545, 30549, 30553, 30557, 30561, 30565, 30569,
        30573, 30577, 30581, 30585, 30589, 30593, 30597, 30601, 30605, 30609, 30613, 30617, 30621,
        30625, 30629, 30633, 30637, 30641, 30645, 30649, 30653, 30657, 30661, 30665, 30669, 30673,
        30677, 30681, 30685, 30689, 30693, 30697, 30701, 30705, 30709, 30713, 30717, 30721, 30725,
        30729, 30733, 30737, 30741, 30745, 30749, 30753, 30757, 30761, 30765, 30769, 30773, 30777,
        30781, 30785, 30789, 30793, 30797, 30801, 30805, 30809, 30813, 30817, 30821, 30825, 30829,
        30833, 30837, 30841, 30845, 30849, 30853, 30857, 30861, 30865, 30869, 30873, 30877, 30881,
        30885, 30889, 30893, 30897, 30901, 30905, 30909, 30913, 30917, 30921, 30925, 30929, 30933,
        30937, 30941, 30945, 30949, 30953, 30957, 30961, 30965, 30969, 30973, 30977, 30981, 30985,
        30989, 30993, 30997, 31001, 31005, 31009, 31013, 31017, 31021, 31025, 31029, 31033, 31037,
        31041, 31045, 31049, 31053, 31057, 31061, 31065, 31069, 31073, 31077, 31080, 31080, 31081,
        31085, 31089, 31093, 31097, 31101, 31105, 31109, 31113, 31117, 31121, 31125, 31129, 31133,
        31137, 31141, 31145, 31149, 31153, 31157, 31161, 31165, 31169, 31173, 31177, 31181, 31185,
        31189, 31193, 31197, 31201, 31205, 31209, 31213, 31217, 31221, 31225, 31229, 31233, 31237,
        31241, 31245, 31249, 31253, 31257, 31261, 31265, 31269, 31273, 31277, 31281, 31285, 31289,
        31293, 31297, 31301, 31305, 31309, 31313, 31317, 31321, 31325, 31329, 31333, 31337, 31341,
        31345, 31349, 31353, 31357, 31361, 31365, 31369, 31373, 31377, 31381, 31385, 31389, 31393,
        31397, 31401, 31405, 31409, 31413, 31417, 31421, 31425, 31429, 31433,
    ],
    [
        31433, 31437, 31441, 31445, 31449, 31453, 31457, 31461, 31465, 31469, 31473, 31477, 31481,
        31485, 31489, 31493, 31497, 31501, 31505, 31509, 31513, 31517, 31521, 31525, 31529, 31533,
        31537, 31541, 31545, 31549, 31553, 31557, 31561, 31565, 31569, 31573, 31577, 31581, 31585,
        31589, 31593, 31597, 31601, 31605, 31609, 31613, 31617, 31621, 31625, 31629, 31633, 31637,
        31641, 31645, 31649, 31653, 31657, 31661, 31665, 31669, 31673, 31677, 31681, 31685, 31689,
        31693, 31697, 31701, 31705, 31709, 31713, 31717, 31721, 31725, 31729, 31733, 31737, 31741,
        31745, 31749, 31753, 31757, 31761, 31765, 31769, 31773, 31777, 31781, 31785, 31789, 31793,
        31797, 31801, 31805, 31809, 31813, 31817, 31821, 31825, 31829, 31833, 31837, 31841, 31845,
        31849, 31853, 31857, 31861, 31865, 31869, 31873, 31877, 31881, 31885, 31889, 31893, 31897,
        31901, 31905, 31909, 31913, 31917, 31921, 31925, 31929, 31933, 31937, 31941, 31945, 31949,
        31953, 31957, 31961, 31965, 31969, 31973, 31977, 31981, 31985, 31989, 31993, 31997, 32001,
        32005, 32009, 32013, 32017, 32021, 32025, 32029, 32033, 32037, 32041, 32045, 32049, 32053,
        32057, 32061, 32065, 32069, 32073, 32077, 32081, 32085, 32089, 32093, 32097, 32101, 32105,
        32109, 32113, 32117, 32121, 32125, 32129, 32133, 32137, 32141, 32145, 32149, 32153, 32157,
        32161, 32165, 32169, 32173, 32177, 32181, 32185, 32189, 32193, 32197, 32201, 32205, 32209,
        32213, 32217, 32221, 32225, 32229, 32233, 32237, 32241, 32245, 32248, 32248, 32249, 32253,
        32257, 32261, 32265, 32269, 32273, 32277, 32281, 32285, 32289, 32293, 32297, 32301, 32305,
        32309, 32313, 32317, 32321, 32325, 32329, 32333, 32337, 32341, 32345, 32349, 32353, 32357,
        32361, 32365, 32369, 32373, 32377, 32381, 32385, 32389, 32393, 32397, 32401, 32405, 32409,
        32413, 32417, 32421, 32425, 32429, 32433, 32437, 32441, 32445, 32448,
    ],
    [
        32448, 32448, 32448, 32448, 32448, 32448, 32448, 32448, 32448, 32448, 32448, 32448, 32448,
        32448, 32448, 32448, 32448, 32448, 32448, 32448, 32448, 32448, 32448, 32448, 32448, 32448,
        32448, 32448, 32448, 32448, 32448, 32448, 32448, 32448, 32448, 32448, 32448, 32448, 32448,
        32448, 32448, 32448, 32448, 32448, 32448, 32448, 32448, 32448, 32449, 32453, 32457, 32461,
        32465, 32469, 32473, 32477, 32481, 32485, 32489, 32493, 32497, 32501, 32505, 32509, 32513,
        32517, 32521, 32525, 32529, 32533, 32537, 32541, 32545, 32549, 32553, 32557, 32561, 32565,
        32569, 32573, 32577, 32581, 32585, 32589, 32593, 32597, 32601, 32605, 32609, 32613, 32617,
        32621, 32625, 32629, 32633, 32637, 32641, 32645, 32649, 32653, 32657, 32661, 32665, 32669,
        32673, 32677, 32681, 32685, 32689, 32693, 32696, 32696, 32696, 32696, 32696, 32696, 32696,
        32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696,
        32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696,
        32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696,
        32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696,
        32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696,
        32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696,
        32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696,
        32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696,
        32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696,
        32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696,
        32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696,
    ],
    [
        32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696,
        32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696,
        32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696,
        32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696,
        32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696,
        32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696,
        32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696,
        32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696,
        32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696,
        32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696,
        32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696,
        32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696,
        32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696,
        32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696,
        32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696,
        32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696,
        32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696,
        32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696,
        32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696,
        32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32696, 32697,
    ],
    [
        32697, 32701, 32705, 32709, 32712, 32713, 32717, 32721, 32725, 32729, 32733, 32737, 32741,
        32745, 32749, 32753, 32757, 32761, 32765, 32769, 32773, 32777, 32781, 32785, 32789, 32793,
        32797, 32801, 32805, 32809, 32813, 32817, 32820, 32821, 32825, 32828, 32829, 32832, 32832,
        32833, 32836, 32837, 32841, 32845, 32849, 32853, 32857, 32861, 32865, 32869, 32873, 32876,
        32877, 32881, 32885, 32889, 32892, 32893, 32896, 32897, 32900, 32900, 32900, 32900, 32900,
        32900, 32901, 32904, 32904, 32904, 32904, 32905, 32908, 32909, 32912, 32913, 32916, 32917,
        32921, 32925, 32928, 32929, 32933, 32936, 32937, 32940, 32940, 32941, 32944, 32945, 32948,
        32949, 32952, 32953, 32956, 32957, 32960, 32961, 32965, 32968, 32969, 32972, 32972, 32973,
        32977, 32981, 32985, 32988, 32989, 32993, 32997, 33001, 33005, 33009, 33013, 33016, 33017,
        33021, 33025, 33029, 33032, 33033, 33037, 33041, 33045, 33048, 33049, 33052, 33053, 33057,
        33061, 33065, 33069, 33073, 33077, 33081, 33085, 33089, 33092, 33093, 33097, 33101, 33105,
        33109, 33113, 33117, 33121, 33125, 33129, 33133, 33137, 33141, 33145, 33149, 33153, 33157,
        33160, 33160, 33160, 33160, 33160, 33161, 33165, 33169, 33172, 33173, 33177, 33181, 33185,
        33189, 33192, 33193, 33197, 33201, 33205, 33209, 33213, 33217, 33221, 33225, 33229, 33233,
        33237, 33241, 33245, 33249, 33253, 33257, 33260, 33260, 33260, 33260, 33260, 33260, 33260,
        33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260,
        33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260,
        33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260,
        33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260,
        33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260,
    ],
    [
        33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260,
        33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260,
        33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260,
        33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260,
        33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260,
        33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260,
        33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260,
        33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260,
        33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260,
        33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260,
        33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260,
        33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260,
        33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260,
        33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260,
        33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260,
        33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260,
        33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260,
        33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260,
        33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260,
        33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33260, 33261,
    ],
    [
        33261, 33269, 33277, 33285, 33293, 33301, 33309, 33317, 33325, 33333, 33341, 33348, 33348,
        33348, 33348, 33348, 33349, 33361, 33373, 33385, 33397, 33409, 33421, 33433, 33445, 33457,
        33469, 33481, 33493, 33505, 33517, 33529, 33541, 33553, 33565, 33577, 33589, 33601, 33613,
        33625, 33637, 33649, 33661, 33673, 33677, 33681, 33689, 33696, 33697, 33701, 33705, 33709,
        33713, 33717, 33721, 33725, 33729, 33733, 33737, 33741, 33745, 33749, 33753, 33757, 33761,
        33765, 33769, 33773, 33777, 33781, 33785, 33789, 33793, 33797, 33801, 33809, 33817, 33825,
        33833, 33845, 33852, 33852, 33852, 33852, 33852, 33852, 33852, 33852, 33852, 33852, 33852,
        33852, 33852, 33852, 33852, 33852, 33852, 33852, 33852, 33852, 33852, 33852, 33852, 33852,
        33852, 33852, 33853, 33861, 33869, 33876, 33876, 33876, 33876, 33876, 33876, 33876, 33876,
        33876, 33876, 33876, 33876, 33876, 33876, 33876, 33876, 33876, 33876, 33876, 33876, 33876,
        33876, 33876, 33876, 33876, 33876, 33876, 33876, 33876, 33876, 33876, 33876, 33876, 33876,
        33876, 33877, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884,
        33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884,
        33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884,
        33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884,
        33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884,
        33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884,
        33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884,
        33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884,
        33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33884, 33885,
    ],
    [
        33885, 33893, 33901, 33904, 33904, 33904, 33904, 33904, 33904, 33904, 33904, 33904, 33904,
        33904, 33904, 33904, 33905, 33909, 33913, 33917, 33925, 33929, 33933, 33937, 33941, 33945,
        33949, 33953, 33957, 33961, 33965, 33969, 33973, 33977, 33981, 33985, 33989, 33993, 33997,
        34001, 34005, 34009, 34013, 34017, 34021, 34025, 34029, 34033, 34037, 34041, 34045, 34049,
        34053, 34057, 34061, 34065, 34069, 34073, 34077, 34081, 34084, 34084, 34084, 34084, 34085,
        34097, 34109, 34121, 34133, 34145, 34157, 34169, 34181, 34192, 34192, 34192, 34192, 34192,
        34192, 34192, 34193, 34197, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200,
        34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200,
        34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200,
        34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200,
        34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200,
        34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200,
        34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200,
        34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200,
        34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200,
        34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200,
        34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200,
        34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200,
        34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200,
        34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200,
    ],
    [
        34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200,
        34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200,
        34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200,
        34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200,
        34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200,
        34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200,
        34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200,
        34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200,
        34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200,
        34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200,
        34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200,
        34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200,
        34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200,
        34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200,
        34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200,
        34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200,
        34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200,
        34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200, 34200,
        34200, 34200, 34200, 34200, 34200, 34200, 34201, 34205, 34209, 34213, 34217, 34221, 34225,
        34229, 34233, 34237, 34240, 34240, 34240, 34240, 34240, 34240, 34240,
    ],
    [
        34240, 34244, 34248, 34252, 34256, 34260, 34264, 34268, 34272, 34276, 34280, 34284, 34288,
        34292, 34296, 34300, 34304, 34308, 34312, 34316, 34320, 34324, 34328, 34332, 34336, 34340,
        34344, 34348, 34352, 34356, 34360, 34364, 34368, 34372, 34376, 34380, 34384, 34388, 34392,
        34396, 34400, 34404, 34408, 34412, 34416, 34420, 34424, 34428, 34432, 34436, 34440, 34444,
        34448, 34452, 34456, 34460, 34464, 34468, 34472, 34476, 34480, 34484, 34488, 34492, 34496,
        34500, 34504, 34508, 34512, 34516, 34520, 34524, 34528, 34532, 34536, 34540, 34544, 34548,
        34552, 34556, 34560, 34564, 34568, 34572, 34576, 34580, 34584, 34588, 34592, 34596, 34600,
        34604, 34608, 34612, 34616, 34620, 34624, 34628, 34632, 34636, 34640, 34644, 34648, 34652,
        34656, 34660, 34664, 34668, 34672, 34676, 34680, 34684, 34688, 34692, 34696, 34700, 34704,
        34708, 34712, 34716, 34720, 34724, 34728, 34732, 34736, 34740, 34744, 34748, 34752, 34756,
        34760, 34764, 34768, 34772, 34776, 34780, 34784, 34788, 34792, 34796, 34800, 34804, 34808,
        34812, 34816, 34820, 34824, 34828, 34832, 34836, 34840, 34844, 34848, 34852, 34856, 34860,
        34864, 34868, 34872, 34876, 34880, 34884, 34888, 34892, 34896, 34900, 34904, 34908, 34912,
        34916, 34920, 34924, 34928, 34932, 34936, 34940, 34944, 34948, 34952, 34956, 34960, 34964,
        34968, 34972, 34976, 34980, 34984, 34988, 34992, 34996, 35000, 35004, 35008, 35012, 35016,
        35020, 35024, 35028, 35032, 35036, 35040, 35044, 35048, 35052, 35056, 35060, 35064, 35068,
        35072, 35076, 35080, 35084, 35088, 35092, 35096, 35100, 35104, 35108, 35112, 35116, 35120,
        35124, 35128, 35132, 35136, 35140, 35144, 35148, 35152, 35156, 35160, 35164, 35168, 35172,
        35176, 35180, 35184, 35188, 35192, 35196, 35200, 35204, 35208, 35212, 35216, 35220, 35224,
        35228, 35232, 35236, 35240, 35244, 35248, 35252, 35256, 35260, 35264,
    ],
    [
        35264, 35268, 35272, 35276, 35280, 35284, 35288, 35292, 35296, 35300, 35304, 35308, 35312,
        35316, 35320, 35324, 35328, 35332, 35336, 35340, 35344, 35348, 35352, 35356, 35360, 35364,
        35368, 35372, 35376, 35380, 35384, 35388, 35392, 35396, 35400, 35404, 35408, 35412, 35416,
        35420, 35424, 35428, 35432, 35436, 35440, 35444, 35448, 35452, 35456, 35460, 35464, 35468,
        35472, 35476, 35480, 35484, 35488, 35492, 35496, 35500, 35504, 35508, 35512, 35516, 35520,
        35524, 35528, 35532, 35536, 35540, 35544, 35548, 35552, 35556, 35560, 35564, 35568, 35572,
        35576, 35580, 35584, 35588, 35592, 35596, 35600, 35604, 35608, 35612, 35616, 35620, 35624,
        35628, 35632, 35636, 35640, 35644, 35648, 35652, 35656, 35660, 35664, 35668, 35672, 35676,
        35680, 35684, 35688, 35692, 35696, 35700, 35704, 35708, 35712, 35716, 35720, 35724, 35728,
        35732, 35736, 35740, 35744, 35748, 35752, 35756, 35760, 35764, 35768, 35772, 35776, 35780,
        35784, 35788, 35792, 35796, 35800, 35804, 35808, 35812, 35816, 35820, 35824, 35828, 35832,
        35836, 35840, 35844, 35848, 35852, 35856, 35860, 35864, 35868, 35872, 35876, 35880, 35884,
        35888, 35892, 35896, 35900, 35904, 35908, 35912, 35916, 35920, 35924, 35928, 35932, 35936,
        35940, 35944, 35948, 35952, 35956, 35960, 35964, 35968, 35972, 35976, 35980, 35984, 35988,
        35992, 35996, 36000, 36004, 36008, 36012, 36016, 36020, 36024, 36028, 36032, 36036, 36040,
        36044, 36048, 36052, 36056, 36060, 36064, 36068, 36072, 36076, 36080, 36084, 36088, 36092,
        36096, 36100, 36104, 36108, 36112, 36116, 36120, 36124, 36128, 36132, 36136, 36140, 36144,
        36148, 36152, 36156, 36160, 36164, 36168, 36172, 36176, 36180, 36184, 36188, 36192, 36196,
        36200, 36204, 36208, 36212, 36216, 36220, 36224, 36228, 36232, 36236, 36240, 36244, 36248,
        36252, 36256, 36260, 36264, 36268, 36272, 36276, 36280, 36284, 36288,
    ],
    [
        36288, 36292, 36296, 36300, 36304, 36308, 36312, 36316, 36320, 36324, 36328, 36332, 36336,
        36340, 36344, 36348, 36352, 36356, 36360, 36364, 36368, 36372, 36376, 36380, 36384, 36388,
        36392, 36396, 36400, 36404, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408,
        36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408,
        36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408,
        36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408,
        36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408,
        36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408,
        36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408,
        36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408,
        36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408,
        36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408,
        36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408,
        36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408,
        36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408,
        36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408,
        36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408,
        36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408,
        36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408,
        36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408, 36408,
    ],
];
pub const DECOMPOSITION_DATA: [u32; 52] = [
    // Minimal decomposition data
    0, 32, 32, 776, 97, 32, 772, 50, 51, 32, 769, 956, 32, 807, 49, 111, 49, 8260, 52, 49, 8260, 50,
    51, 8260, 52, 65, 768, 65, 769, 65, 770, 65, 771, 65, 776, 65, 778, 67, 807, 69, 768, 69, 769,
    69, 770, 69, 776, 73, 768, 73, 769, 73,
];

// Canonical combining class tables
pub const CANONICAL_COMBINING_CLASS_INDEX: [u8; 4352] = [0; 4352];
pub static CANONICAL_COMBINING_CLASS_BLOCK: [[u8; 256]; 67] = [[0; 256]; 67];

// Composition tables extracted from unicode_tables.txt
pub const COMPOSITION_INDEX: [u8; 4352] = [
    0, 1, 2, 3, 4, 5, 6, 5, 5, 7, 5, 8, 9, 10, 5, 5, 11, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 12, 5, 5,
    13, 14, 5, 15, 16, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 17, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 18, 19, 5, 20, 21, 22, 5, 5, 5, 23,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    5, 5, 5, 5, 5, 5,
];

// Composition block with correct dimensions
pub static COMPOSITION_BLOCK: [[u16; 257]; 67] = {
    let mut blocks = [[1; 257]; 67];
    // Block 0: Basic Latin compositions
    blocks[0][65] = 3; // 'A' compositions at index 3
    blocks[0][67] = 39; // 'C' compositions at index 39
    blocks[0][69] = 45; // 'E' compositions at index 45
    blocks[0][73] = 101; // 'I' compositions at index 101
    blocks[0][79] = 163; // 'O' compositions at index 163
    blocks[0][85] = 245; // 'U' compositions at index 245
    blocks
};

pub const COMPOSITION_DATA: [u32; 1883] = [
    0, 824, 8814, 824, 8800, 824, 8815, 768, 192, 769, 193, 770, 194, 771, 195, 772, 256, 774, 258,
    775, 550, 776, 196, 777, 7842, 778, 197, 780, 461, 783, 512, 785, 514, 803, 7840, 805, 7680,
    808, 260, 775, 7682, 803, 7684, 817, 7686, 769, 262, 770, 264, 775, 266, 780, 268, 807, 199,
    775, 7690, 780, 270, 803, 7692, 807, 7696, 813, 7698, 817, 7694, 768, 200, 769, 201, 770, 202,
    771, 7868, 772, 274, 774, 276, 775, 278, 776, 203, 777, 7866, 780, 282, 783, 516, 785, 518,
    803, 7864, 807, 552, 808, 280, 813, 7704, 816, 7706, 775, 7710, 769, 500, 770, 284, 772, 7712,
    774, 286, 775, 288, 780, 486, 807, 290, 770, 292, 775, 7714, 776, 7718, 780, 542, 803, 7716,
    807, 7720, 814, 7722, 768, 204, 769, 205, 770, 206, 771, 296, 772, 298, 774, 300, 775, 304,
    776, 207, 777, 7880, 780, 463, 783, 520, 785, 522, 803, 7882, 808, 302, 816, 7724, 770, 308,
    769, 7728, 780, 488, 803, 7730, 807, 310, 817, 7732, 769, 313, 780, 317, 803, 7734, 807, 315,
    813, 7740, 817, 7738, 769, 7742, 775, 7744, 803, 7746, 768, 504, 769, 323, 771, 209, 775, 7748,
    780, 327, 803, 7750, 807, 325, 813, 7754, 817, 7752, 768, 210, 769, 211, 770, 212, 771, 213,
    772, 332, 774, 334, 775, 558, 776, 214, 777, 7886, 779, 336, 780, 465, 783, 524, 785, 526, 795,
    416, 803, 7884, 808, 490, 769, 7764, 775, 7766, 769, 340, 775, 7768, 780, 344, 783, 528, 785,
    530, 803, 7770, 807, 342, 817, 7774, 769, 346, 770, 348, 775, 7776, 780, 352, 803, 7778, 806,
    536, 807, 350, 775, 7786, 780, 356, 803, 7788, 806, 538, 807, 354, 813, 7792, 817, 7790, 768,
    217, 769, 218, 770, 219, 771, 360, 772, 362, 774, 364, 776, 220, 777, 7910, 778, 366, 779, 368,
    780, 467, 783, 532, 785, 534, 795, 431, 803, 7908, 804, 7794, 808, 370, 813, 7798, 816, 7796,
    771, 7804, 803, 7806, 768, 7808, 769, 7810, 770, 372, 775, 7814, 776, 7812, 803, 7816, 775,
    7818, 776, 7820, 768, 7922, 769, 221, 770, 374, 771, 7928, 772, 562, 775, 7822, 776, 376, 777,
    7926, 803, 7924, 769, 377, 770, 7824, 775, 379, 780, 381, 803, 7826, 817, 7828, 768, 224, 769,
    225, 770, 226, 771, 227, 772, 257, 774, 259, 775, 551, 776, 228, 777, 7843, 778, 229, 780, 462,
    783, 513, 785, 515, 803, 7841, 805, 7681, 808, 261, 775, 7683, 803, 7685, 817, 7687, 769, 263,
    770, 265, 775, 267, 780, 269, 807, 231, 775, 7691, 780, 271, 803, 7693, 807, 7697, 813, 7699,
    817, 7695, 768, 232, 769, 233, 770, 234, 771, 7869, 772, 275, 774, 277, 775, 279, 776, 235,
    777, 7867, 780, 283, 783, 517, 785, 519, 803, 7865, 807, 553, 808, 281, 813, 7705, 816, 7707,
    775, 7711, 769, 501, 770, 285, 772, 7713, 774, 287, 775, 289, 780, 487, 807, 291, 770, 293,
    775, 7715, 776, 7719, 780, 543, 803, 7717, 807, 7721, 814, 7723, 817, 7830, 768, 236, 769, 237,
    770, 238, 771, 297, 772, 299, 774, 301, 776, 239, 777, 7881, 780, 464, 783, 521, 785, 523, 803,
    7883, 808, 303, 816, 7725, 770, 309, 780, 496, 769, 7729, 780, 489, 803, 7731, 807, 311, 817,
    7733, 769, 314, 780, 318, 803, 7735, 807, 316, 813, 7741, 817, 7739, 769, 7743, 775, 7745, 803,
    7747, 768, 505, 769, 324, 771, 241, 775, 7749, 780, 328, 803, 7751, 807, 326, 813, 7755, 817,
    7753, 768, 242, 769, 243, 770, 244, 771, 245, 772, 333, 774, 335, 775, 559, 776, 246, 777,
    7887, 779, 337, 780, 466, 783, 525, 785, 527, 795, 417, 803, 7885, 808, 491, 769, 7765, 775,
    7767, 769, 341, 775, 7769, 780, 345, 783, 529, 785, 531, 803, 7771, 807, 343, 817, 7775, 769,
    347, 770, 349, 775, 7777, 780, 353, 803, 7779, 806, 537, 807, 351, 775, 7787, 776, 7831, 780,
    357, 803, 7789, 806, 539, 807, 355, 813, 7793, 817, 7791, 768, 249, 769, 250, 770, 251, 771,
    361, 772, 363, 774, 365, 776, 252, 777, 7911, 778, 367, 779, 369, 780, 468, 783, 533, 785, 535,
    795, 432, 803, 7909, 804, 7795, 808, 371, 813, 7799, 816, 7797, 771, 7805, 803, 7807, 768,
    7809, 769, 7811, 770, 373, 775, 7815, 776, 7813, 778, 7832, 803, 7817, 775, 7819, 776, 7821,
    768, 7923, 769, 253, 770, 375, 771, 7929, 772, 563, 775, 7823, 776, 255, 777, 7927, 778, 7833,
    803, 7925, 769, 378, 770, 7825, 775, 380, 780, 382, 803, 7827, 817, 7829, 768, 8173, 769, 901,
    834, 8129, 768, 7846, 769, 7844, 771, 7850, 777, 7848, 772, 478, 769, 506, 769, 508, 772, 482,
    769, 7688, 768, 7872, 769, 7870, 771, 7876, 777, 7874, 769, 7726, 768, 7890, 769, 7888, 771,
    7894, 777, 7892, 769, 7756, 772, 556, 776, 7758, 772, 554, 769, 510, 768, 475, 769, 471, 772,
    469, 780, 473, 768, 7847, 769, 7845, 771, 7851, 777, 7849, 772, 479, 769, 507, 769, 509, 772,
    483, 769, 7689, 768, 7873, 769, 7871, 771, 7877, 777, 7875, 769, 7727, 768, 7891, 769, 7889,
    771, 7895, 777, 7893, 769, 7757, 772, 557, 776, 7759, 772, 555, 769, 511, 768, 476, 769, 472,
    772, 470, 780, 474, 768, 7856, 769, 7854, 771, 7860, 777, 7858, 768, 7857, 769, 7855, 771,
    7861, 777, 7859, 768, 7700, 769, 7702, 768, 7701, 769, 7703, 768, 7760, 769, 7762, 768, 7761,
    769, 7763, 775, 7780, 775, 7781, 775, 7782, 775, 7783, 769, 7800, 769, 7801, 776, 7802, 776,
    7803, 775, 7835, 768, 7900, 769, 7898, 771, 7904, 777, 7902, 803, 7906, 768, 7901, 769, 7899,
    771, 7905, 777, 7903, 803, 7907, 768, 7914, 769, 7912, 771, 7918, 777, 7916, 803, 7920, 768,
    7915, 769, 7913, 771, 7919, 777, 7917, 803, 7921, 780, 494, 772, 492, 772, 493, 772, 480, 772,
    481, 774, 7708, 774, 7709, 772, 560, 772, 561, 780, 495, 768, 8122, 769, 902, 772, 8121, 774,
    8120, 787, 7944, 788, 7945, 837, 8124, 768, 8136, 769, 904, 787, 7960, 788, 7961, 768, 8138,
    769, 905, 787, 7976, 788, 7977, 837, 8140, 768, 8154, 769, 906, 772, 8153, 774, 8152, 776, 938,
    787, 7992, 788, 7993, 768, 8184, 769, 908, 787, 8008, 788, 8009, 788, 8172, 768, 8170, 769,
    910, 772, 8169, 774, 8168, 776, 939, 788, 8025, 768, 8186, 769, 911, 787, 8040, 788, 8041, 837,
    8188, 837, 8116, 837, 8132, 768, 8048, 769, 940, 772, 8113, 774, 8112, 787, 7936, 788, 7937,
    834, 8118, 837, 8115, 768, 8050, 769, 941, 787, 7952, 788, 7953, 768, 8052, 769, 942, 787,
    7968, 788, 7969, 834, 8134, 837, 8131, 768, 8054, 769, 943, 772, 8145, 774, 8144, 776, 970,
    787, 7984, 788, 7985, 834, 8150, 768, 8056, 769, 972, 787, 8000, 788, 8001, 787, 8164, 788,
    8165, 768, 8058, 769, 973, 772, 8161, 774, 8160, 776, 971, 787, 8016, 788, 8017, 834, 8166,
    768, 8060, 769, 974, 787, 8032, 788, 8033, 834, 8182, 837, 8179, 768, 8146, 769, 912, 834,
    8151, 768, 8162, 769, 944, 834, 8167, 837, 8180, 769, 979, 776, 980, 776, 1031, 774, 1232, 776,
    1234, 769, 1027, 768, 1024, 774, 1238, 776, 1025, 774, 1217, 776, 1244, 776, 1246, 768, 1037,
    772, 1250, 774, 1049, 776, 1252, 769, 1036, 776, 1254, 772, 1262, 774, 1038, 776, 1264, 779,
    1266, 776, 1268, 776, 1272, 776, 1260, 774, 1233, 776, 1235, 769, 1107, 768, 1104, 774, 1239,
    776, 1105, 774, 1218, 776, 1245, 776, 1247, 768, 1117, 772, 1251, 774, 1081, 776, 1253, 769,
    1116, 776, 1255, 772, 1263, 774, 1118, 776, 1265, 779, 1267, 776, 1269, 776, 1273, 776, 1261,
    776, 1111, 783, 1142, 783, 1143, 776, 1242, 776, 1243, 776, 1258, 776, 1259, 1619, 1570, 1620,
    1571, 1621, 1573, 1620, 1572, 1620, 1574, 1620, 1730, 1620, 1747, 1620, 1728, 2364, 2345, 2364,
    2353, 2364, 2356, 2494, 2507, 2519, 2508, 2878, 2891, 2902, 2888, 2903, 2892, 3031, 2964, 3006,
    3018, 3031, 3020, 3006, 3019, 3158, 3144, 3285, 3264, 3266, 3274, 3285, 3271, 3286, 3272, 3285,
    3275, 3390, 3402, 3415, 3404, 3390, 3403, 3530, 3546, 3535, 3548, 3551, 3550, 3530, 3549, 4142,
    4134, 6965, 6918, 6965, 6920, 6965, 6922, 6965, 6924, 6965, 6926, 6965, 6930, 6965, 6971, 6965,
    6973, 6965, 6976, 6965, 6977, 6965, 6979, 772, 7736, 772, 7737, 772, 7772, 772, 7773, 775,
    7784, 775, 7785, 770, 7852, 774, 7862, 770, 7853, 774, 7863, 770, 7878, 770, 7879, 770, 7896,
    770, 7897, 768, 7938, 769, 7940, 834, 7942, 837, 8064, 768, 7939, 769, 7941, 834, 7943, 837,
    8065, 837, 8066, 837, 8067, 837, 8068, 837, 8069, 837, 8070, 837, 8071, 768, 7946, 769, 7948,
    834, 7950, 837, 8072, 768, 7947, 769, 7949, 834, 7951, 837, 8073, 837, 8074, 837, 8075, 837,
    8076, 837, 8077, 837, 8078, 837, 8079, 768, 7954, 769, 7956, 768, 7955, 769, 7957, 768, 7962,
    769, 7964, 768, 7963, 769, 7965, 768, 7970, 769, 7972, 834, 7974, 837, 8080, 768, 7971, 769,
    7973, 834, 7975, 837, 8081, 837, 8082, 837, 8083, 837, 8084, 837, 8085, 837, 8086, 837, 8087,
    768, 7978, 769, 7980, 834, 7982, 837, 8088, 768, 7979, 769, 7981, 834, 7983, 837, 8089, 837,
    8090, 837, 8091, 837, 8092, 837, 8093, 837, 8094, 837, 8095, 768, 7986, 769, 7988, 834, 7990,
    768, 7987, 769, 7989, 834, 7991, 768, 7994, 769, 7996, 834, 7998, 768, 7995, 769, 7997, 834,
    7999, 768, 8002, 769, 8004, 768, 8003, 769, 8005, 768, 8010, 769, 8012, 768, 8011, 769, 8013,
    768, 8018, 769, 8020, 834, 8022, 768, 8019, 769, 8021, 834, 8023, 768, 8027, 769, 8029, 834,
    8031, 768, 8034, 769, 8036, 834, 8038, 837, 8096, 768, 8035, 769, 8037, 834, 8039, 837, 8097,
    837, 8098, 837, 8099, 837, 8100, 837, 8101, 837, 8102, 837, 8103, 768, 8042, 769, 8044, 834,
    8046, 837, 8104, 768, 8043, 769, 8045, 834, 8047, 837, 8105, 837, 8106, 837, 8107, 837, 8108,
    837, 8109, 837, 8110, 837, 8111, 837, 8114, 837, 8130, 837, 8178, 837, 8119, 768, 8141, 769,
    8142, 834, 8143, 837, 8135, 837, 8183, 768, 8157, 769, 8158, 834, 8159, 824, 8602, 824, 8603,
    824, 8622, 824, 8653, 824, 8655, 824, 8654, 824, 8708, 824, 8713, 824, 8716, 824, 8740, 824,
    8742, 824, 8769, 824, 8772, 824, 8775, 824, 8777, 824, 8813, 824, 8802, 824, 8816, 824, 8817,
    824, 8820, 824, 8821, 824, 8824, 824, 8825, 824, 8832, 824, 8833, 824, 8928, 824, 8929, 824,
    8836, 824, 8837, 824, 8840, 824, 8841, 824, 8930, 824, 8931, 824, 8876, 824, 8877, 824, 8878,
    824, 8879, 824, 8938, 824, 8939, 824, 8940, 824, 8941, 12441, 12436, 12441, 12364, 12441,
    12366, 12441, 12368, 12441, 12370, 12441, 12372, 12441, 12374, 12441, 12376, 12441, 12378,
    12441, 12380, 12441, 12382, 12441, 12384, 12441, 12386, 12441, 12389, 12441, 12391, 12441,
    12393, 12441, 12400, 12442, 12401, 12441, 12403, 12442, 12404, 12441, 12406, 12442, 12407,
    12441, 12409, 12442, 12410, 12441, 12412, 12442, 12413, 12441, 12446, 12441, 12532, 12441,
    12460, 12441, 12462, 12441, 12464, 12441, 12466, 12441, 12468, 12441, 12470, 12441, 12472,
    12441, 12474, 12441, 12476, 12441, 12478, 12441, 12480, 12441, 12482, 12441, 12485, 12441,
    12487, 12441, 12489, 12441, 12496, 12442, 12497, 12441, 12499, 12442, 12500, 12441, 12502,
    12442, 12503, 12441, 12505, 12442, 12506, 12441, 12508, 12442, 12509, 12441, 12535, 12441,
    12536, 12441, 12537, 12441, 12538, 12441, 12542, 69818, 69786, 69818, 69788, 69818, 69803,
    69927, 69934, 69927, 69935, 70462, 70475, 70487, 70476, 70832, 70844, 70842, 70843, 70845,
    70846, 71087, 71098, 71087, 71099, 71984, 71992,
];