293878415
65603622
38022564
31398766
28914807
25818144
23475275
22884155
21888709
20702213
19470966
18212823
18124610
17908278
17776852
17691764
17253460
16812637
15701565
15648720
14208518
14056045
13639972
13633301
13412834
13181931
13064629
12994056
12748999
12500197
12415278
12351213
11888497
11639900
11624659
11485963
11341333
10714996
10485740
10000964
9998568
9974974
9954571
9918974
9909453
9891999
9827549
9540453
9350432
8997308
8782275
8767552
8694613
8558204
8527673
8405725
8388260
8146773
8142204
8059730
7969025
7845267
7767787
7522762
7508553
7413978
7404472
7153971
7120949
6737219
6714535
6535850
6304969
6294075
6274027
6217688
6135165
5751725
5745885
5452069
5449525
5258749
5200190
5134949
5093859
5073269
5071724
5037738
5036419
5034098
4889468
4854921
4818144
4806312
4727731
4718603
4680861
4568164
4566569
4554888
4532558
4510930
4428302
4370372
4358114
4335607
4260854
4243735
4221551
4142406
4104252
4048413
4035649
4024039
3987310
3952705
3939006
3914922
3893041
3864634
3816187
3783866
3762629
3762493
3723354
3627464
3603260
3555377
3526731
3470575
3380897
3331607
3331574
3309129
3297235
3268610
3228350
3214724
3163467
2930125
2914206
2895442
2875095
2861015
2856543
2791950
2748553
2746836
2727839
2713390
2662994
2553934
2527172
2483959
2469747
2464386
2440044
2433370
2391694
2379999
2370867
2337524
2337274
2328106
2317411
2305230
2297197
2288197
2265902
2248341
2239978
2235356
2189377
2163763
2078994
2053927
2053699
2024150
2022752
1975251
1964879
1956785
1950167
1945713
1906383
1892718
1876437
1853394
1848762
1835674
1834449
1805882
1764076
1710859
1692262
1634061
1628403
1624510
1618238
1580611
1551220
1517296
1516687
1488717
1478587
1476110
1475850
1475314
1473251
1467205
1458823
1454167
1452881
1432241
1424333
1421492
1410056
1404930
1391515
1391418
1324305
1293677
1273093
1261360
1255093
1245806
1243842
1232555
1215514
1186575
1184281
1176264
1164191
1163111
1152330
1147715
1126129
1119311
1105249
1089393
1089041
1080129
1076181
1068613
1057119
1054890
1041933
1023385
1013083
1007316
1002400
1000296
980234
971345
957330
945389
944153
910831
903731
873858
871513
853381
837945
832280
819604
818009
811228
797247
788764
782801
775765
767971
766992
752723
746648
744110
742707
724524
715497
710817
708378
705711
705474
702914
701555
685802
684584
679009
674577
671195
662693
660166
654379
643146
638126
627426
626141
622466
618218
610079
608912
593181
592021
585880
579760
565279
552176
544937
543875
540044
537126
535098
508257
489969
489330
471851
468269
467558
461115
451692
447684
428603
427607
425748
424004
423031
416859
416043
415378
411657
411074
397647
389976
386713
386260
384364
382083
371906
371529
369532
367265
365694
349711
347930
342007
333155
330048
329444
328588
326262
324221
322873
322808
322634
321873
317810
317798
304805
293460
290622
281607
281576
280196
268395
268395
268042
266699
263347
262785
260842
259314
259184
258740
258318
256679
256479
251679
249367
244206
242778
240622
239027
237925
237622
230296
230091
227552
226681
222475
220605
211256
210862
209920
208903
207358
206755
206009
205639
202017
196167
193300
192968
192242
191077
180592
180436
180370
177396
176716
176573
176359
174818
174714
172628
171173
169709
168664
166025
162106
161341
160898
159844
159619
158710
158257
157745
157079
156803
155725
155363
152943
151596
150050
149278
147026
146926
146876
144790
144620
144017
143467
142102
142059
141297
141209
139232
138483
137640
136830
135368
134916
133007
131950
131530
130004
129987
129819
129436
129155
129097
128241
128121
128020
128017
127596
126699
124913
124565
124219
123500
122165
121102
120865
120010
119701
119252
118463
116117
115051
114803
114743
113748
113563
113318
112656
112500
111839
111123
110913
110445
108636
108327
108230
106883
104797
104052
103809
103787
103451
102989
102444
102165
101804
101466
101181
101170
100855
100273
98989
98521
97782
97291
96600
96538
96173
96013
94555
94398
94112
93704
93383
92802
92543
92519
91698
90769
89578
88972
88820
88629
86898
86872
86571
85786
85668
85610
84818
84441
83074
82310
82163
81749
81710
81569
80586
80249
79983
78219
77079
77004
76684
76378
76162
76079
76008
75628
74347
74189
73757
73483
72769
72378
71317
70971
70900
70379
70271
70204
70162
70040
70021
69909
69906
69301
69139
68926
68601
68220
67597
66992
66538
66533
66318
66139
66127
65843
65720
65657
63508
62694
62638
62239
62062
61961
61889
61683
61465
60997
60949
60481
60429
60170
60159
60133
59955
59875
59872
59722
59546
59318
59101
58920
58768
58595
58475
58463
57978
57877
57731
57664
57578
57080
57057
56984
56836
56672
56533
56528
55150
55078
54746
54305
54177
53494
53256
53129
52842
52764
52746
52679
52535
52510
52320
52121
51662
51658
51398
51332
51147
51104
50881
50873
50800
50726
50598
50536
49922
49882
49616
49547
49195
49056
49014
48641
47943
47942
47743
47367
46877
46530
46514
46504
46422
46356
46350
46082
45996
45862
45810
45645
45555
45539
45474
45464
45344
45162
45158
45092
44644
44425
44283
44154
44127
44084
43860
43786
43750
43681
42804
42754
42614
42542
42458
42431
42391
42367
42322
41995
41784
41771
41621
41602
41602
41505
41447
41407
41202
41155
41003
40866
40743
40666
40614
40604
40155
40147
40076
39891
39883
39752
39743
39662
39631
39571
39532
39340
39156
39148
39089
38957
38875
38807
38734
38612
38599
38338
38216
38164
38016
37965
37884
37855
37726
37667
37526
37498
37259
37143
37100
37090
37033
36937
36817
36806
36729
36651
36576
36550
36536
36477
36206
36157
36149
36132
36110
35984
35971
35848
35844
35835
35828
35800
35736
35044
34864
34817
34812
34626
34405
34297
34169
33976
33946
33911
33811
33596
33579
33527
33486
33472
33469
33452
33435
33404
33333
33230
32843
32830
32741
32691
32493
32295
32209
32151
32138
32038
31834
31668
31622
31601
31595
31515
31508
31451
31449
31324
31210
31191
30916
30890
30647
30538
30449
30382
30349
30293
30278
30172
30028
29885
29684
29622
29399
29373
29235
29218
29130
29117
28930
28690
28687
28406
27946
27884
27881
27844
27703
27591
27530
27466
27337
27235
27172
27071
26995
26967
26849
26732
26730
26674
26605
26501
26440
26426
26249
26244
26223
26205
26167
26015
25936
25930
25864
25740
25680
25550
25394
25373
25265
25254
25210
25086
24919
24902
24877
24863
24830
24820
24774
24752
24731
24692
24412
24323
24321
24265
24251
24205
24090
23971
23962
23918
23828
23674
23665
23591
23568
23308
23265
23140
23110
23101
23071
23066
23015
23010
22988
22885
22877
22813
22765
22639
22533
22402
22395
22335
22324
22276
22058
21930
21913
21732
21721
21663
21651
21625
21584
21540
21536
21415
21360
21359
21345
21265
21134
21132
21113
21084
21040
20962
20946
20886
20884
20871
20771
20677
20620
20573
20538
20523
20468
20448
20412
20379
20361
20350
20288
20200
20077
20070
20032
20016
19945
19942
19939
19921
19895
19842
19831
19783
19731
19651
19504
19500
19441
19393
19363
19344
19307
19284
19243
19231
19156
19125
19119
19115
19076
19062
19011
18999
18948
18886
18843
18823
18773
18717
18694
18633
18631
18599
18547
18539
18486
18408
18359
18358
18276
18217
18199
18196
18131
18078
18072
18055
18044
17994
17901
17897
17801
17782
17577
17477
17447
17424
17423
17361
17335
17334
17309
17302
17284
17075
17030
16999
16958
16919
16881
16868
16817
16757
16753
16728
16605
16561
16536
16500
16486
16480
16454
16361
16358
16309
16308
16281
16268
16262
16231
16142
16019
16015
15974
15957
15883
15869
15854
15802
15784
15761
15684
15645
15631
15584
15564
15554
15497
15489
15488
15478
15478
15467
15346
15343
15293
15223
15163
15084
15082
15016
15015
15008
14977
14976
14942
14931
14823
14819
14798
14789
14786
14776
14755
14723
14604
14584
14537
14536
14521
14431
14370
14349
14348
14255
14170
14131
14093
13911
13847
13769
13759
13741
13732
13717
13633
13627
13588
13499
13435
13424
13377
13340
13303
13266
13235
13217
13190
13158
13131
13116
13025
13000
12909
12887
12850
12832
12813
12809
12757
12691
12657
12629
12534
12528
12513
12435
12394
12378
12287
12276
12268
12263
12247
12185
12172
12045
12033
11925
11913
11869
11845
11743
11707
11624
11545
11531
11477
11439
11372
11362
11338
11329
11289
11245
11215
11199
11187
11163
11113
11028
10990
10983
10970
10923
10919
10885
10874
10829
10761
10649
10626
10625
10587
10494
10471
10427
10419
10412
10404
10385
10370
10330
10273
10215
10213
10194
10187
10181
10176
10171
10154
10066
10055
10043
9987
9982
9962
9908
9703
9683
9675
9658
9643
9634
9614
9572
9553
9548
9542
9539
9531
9512
9505
9493
9411
9410
9409
9400
9368
9366
9350
9340
9328
9260
9259
9231
9229
9158
9112
9067
9063
9038
9030
9027
9009
8989
8946
8943
8873
8866
8856
8815
8778
8764
8763
8720
8707
8682
8682
8642
8640
8575
8528
8498
8487
8483
8481
8467
8463
8461
8406
8377
8374
8355
8354
8351
8347
8345
8343
8312
8268
8258
8249
8230
8188
8128
8072
8071
8060
8033
8030
8005
8000
7998
7934
7934
7918
7909
7849
7833
7831
7818
7790
7774
7773
7758
7756
7739
7712
7662
7657
7646
7622
7620
7593
7584
7532
7524
7484
7462
7458
7440
7410
7353
7329
7271
7263
7257
7230
7159
7151
7131
7067
7064
7061
7034
7032
7024
7016
6976
6966
6938
6902
6899
6895
6890
6887
6880
6836
6806
6800
6776
6771
6767
6764
6753
6736
6733
6714
6698
6683
6677
6673
6655
6655
6617
6561
6513
6504
6501
6495
6490
6355
6353
6352
6288
6279
6247
6152
6139
6122
6120
6075
6056
6046
6045
6027
6024
5997
5982
5970
5937
5896
5895
5870
5867
5866
5844
5832
5781
5778
5759
5757
5755
5724
5703
5700
5672
5583
5579
5571
5545
5530
5521
5520
5513
5510
5491
5480
5464
5450
5438
5423
5408
5394
5392
5386
5376
5347
5345
5341
5319
5302
5298
5289
5282
5266
5252
5236
5226
5183
5167
5151
5126
5118
5095
5089
5086
5082
5069
5007
4985
4964
4956
4903
4893
4889
4881
4877
4871
4865
4864
4856
4855
4834
4825
4820
4811
4800
4799
4772
4753
4744
4739
4730
4729
4723
4711
4694
4692
4690
4678
4591
4578
4560
4556
4544
4539
4523
4519
4497
4488
4474
4473
4472
4467
4440
4416
4412
4409
4396
4380
4371
4366
4355
4346
4310
4306
4267
4257
4248
4247
4247
4240
4238
4223
4202
4196
4190
4179
4176
4172
4170
4148
4139
4138
4137
4136
4131
4108
4104
4085
4074
4051
4051
4040
4039
4025
4014
4007
3994
3982
3971
3964
3963
3963
3933
3918
3908
3901
3899
3891
3887
3880
3872
3862
3816
3780
3778
3772
3771
3760
3739
3715
3714
3676
3658
3657
3655
3651
3638
3637
3635
3622
3611
3603
3602
3575
3571
3558
3555
3539
3523
3507
3494
3472
3453
3434
3434
3430
3428
3421
3405
3380
3362
3353
3347
3332
3314
3309
3291
3273
3269
3268
3267
3266
3258
3252
3251
3240
3235
3230
3227
3225
3218
3217
3210
3205
3202
3197
3195
3185
3172
3170
3158
3151
3148
3146
3134
3133
3129
3121
3086
3039
3010
3000
2994
2991
2984
2981
2979
2974
2963
2934
2926
2925
2924
2923
2899
2898
2892
2884
2883
2877
2864
2862
2861
2860
2855
2848
2846
2824
2824
2813
2813
2804
2804
2802
2790
2783
2782
2775
2759
2758
2740
2736
2722
2721
2719
2718
2702
2688
2682
2680
2678
2674
2673
2672
2671
2668
2661
2652
2631
2631
2626
2619
2615
2611
2609
2595
2572
2557
2552
2551
2549
2536
2525
2522
2516
2513
2513
2510
2507
2501
2487
2474
2471
2470
2465
2465
2464
2455
2446
2438
2437
2437
2435
2432
2418
2407
2407
2396
2394
2388
2380
2379
2379
2378
2377
2372
2367
2365
2359
2358
2356
2354
2347
2342
2336
2312
2307
2306
2300
2299
2299
2297
2291
2279
2278
2268
2268
2254
2242
2239
2237
2235
2227
2214
2212
2193
2190
2183
2181
2176
2169
2145
2141
2135
2134
2127
2122
2117
2105
2103
2101
2101
2097
2085
2084
2083
2079
2075
2075
2068
2064
2041
2040
2038
2037
2036
2028
2005
1997
1995
1989
1985
1984
1961
1959
1957
1957
1956
1952
1948
1942
1938
1933
1931
1924
1920
1917
1915
1913
1909
1909
1905
1904
1898
1896
1892
1883
1880
1878
1856
1854
1852
1851
1850
1844
1842
1837
1828
1822
1822
1821
1818
1808
1803
1800
1795
1792
1791
1788
1782
1782
1774
1772
1756
1755
1750
1745
1729
1726
1725
1720
1711
1708
1701
1700
1698
1697
1688
1687
1681
1681
1675
1673
1671
1666
1659
1656
1649
1645
1639
1638
1637
1636
1631
1614
1614
1609
1603
1599
1590
1590
1587
1587
1587
1584
1579
1578
1577
1574
1569
1566
1562
1560
1555
1551
1550
1543
1543
1536
1529
1523
1521
1513
1507
1504
1495
1494
1493
1491
1486
1485
1485
1472
1470
1467
1464
1462
1459
1455
1452
1450
1441
1439
1436
1436
1435
1422
1421
1416
1414
1413
1413
1411
1411
1410
1409
1408
1405
1405
1398
1398
1394
1386
1383
1377
1377
1372
1372
1370
1364
1354
1354
1349
1346
1345
1332
1324
1323
1319
1316
1311
1305
1302
1295
1293
1290
1288
1286
1286
1286
1285
1284
1282
1282
1278
1278
1278
1276
1274
1272
1272
1271
1263
1263
1262
1262
1259
1252
1251
1248
1245
1244
1239
1238
1237
1236
1235
1226
1223
1222
1220
1217
1214
1214
1213
1213
1210
1210
1207
1205
1204
1204
1204
1203
1201
1197
1192
1188
1187
1185
1179
1179
1176
1173
1168
1166
1166
1165
1160
1151
1149
1146
1144
1140
1138
1135
1135
1133
1126
1126
1123
1118
1117
1117
1117
1117
1117
1115
1114
1110
1109
1104
1099
1098
1096
1092
1091
1091
1087
1084
1082
1081
1080
1080
1079
1075
1072
1070
1065
1064
1060
1053
1047
1042
1037
1034
1033
1029
1028
1028
1026
1024
1023
1022
1020
1019
1017
1013
1011
1007
1000
1000
998
998
998
997
996
994
993
993
990
989
988
986
982
981
980
979
979
979
978
977
976
973
973
972
971
966
965
960
956
955
953
953
951
951
943
943
941
941
941
939
938
936
936
935
934
932
929
927
926
924
920
919
916
913
913
910
907
906
905
904
904
901
901
900
899
896
896
894
893
893
893
892
886
879
878
875
875
874
873
873
872
869
868
866
862
860
859
859
856
851
851
849
848
838
836
835
835
830
829
827
823
820
816
812
812
810
808
804
802
802
802
799
799
798
794
793
790
790
787
785
782
780
776
775
775
773
769
767
766
766
765
764
762
759
756
754
753
752
752
749
749
744
743
742
742
740
740
740
740
738
735
732
732
729
726
722
719
718
716
714
713
711
711
709
709
708
708
707
707
704
703
702
701
700
699
699
697
695
693
690
690
689
688
688
686
686
686
683
682
679
679
677
677
677
676
676
674
674
672
672
672
672
671
665
663
663
663
662
662
661
661
658
657
656
656
655
654
651
648
646
644
644
642
642
641
639
637
637
636
636
635
634
633
633
632
629
628
624
622
616
616
615
614
614
614
613
610
610
609
604
602
602
598
598
597
596
595
593
592
589
589
587
587
587
582
581
579
579
578
577
576
573
572
570
569
568
568
566
565
564
564
563
562
561
561
560
557
556
556
553
551
546
546
544
543
540
535
534
532
531
529
528
522
521
518
518
517
517
515
514
513
513
512
510
508
506
506
505
504
504
504
504
501
498
497
496
495
494
494
493
492
491
489
488
488
488
487
486
484
484
484
484
483
480
480
480
480
479
477
476
475
475
475
473
472
471
469
469
469
469
468
468
468
466
465
465
465
463
462
462
460
460
457
455
453
452
452
452
451
449
449
449
449
447
447
446
443
441
441
441
439
439
438
435
435
434
434
433
432
432
431
430
430
428
425
424
423
422
422
421
420
420
419
419
419
419
418
417
414
410
409
409
408
407
407
406
405
405
404
403
402
402
400
399
398
398
398
398
397
396
395
395
395
394
393
393
391
389
388
388
388
387
387
385
385
385
382
381
380
380
380
378
377
377
377
374
372
371
371
370
369
369
368
367
367
364
364
363
363
363
362
362
361
360
359
359
359
358
358
357
356
356
354
353
353
352
350
350
349
345
345
345
344
343
342
342
341
341
341
340
338
338
337
337
337
336
335
334
331
330
330
330
328
328
328
327
325
324
323
323
322
321
320
320
319
318
317
317
316
315
315
313
313
313
313
313
312
312
311
309
308
305
305
305
305
305
304
302
301
301
300
298
297
296
296
295
295
294
293
293
292
291
289
289
289
288
286
286
283
283
283
283
282
282
281
281
280
279
279
279
278
277
277
276
276
276
275
274
274
272
271
269
267
267
267
266
265
264
263
263
263
262
262
261
261
261
261
261
259
259
258
258
258
258
258
256
255
255
255
255
254
253
251
249
249
249
248
248
247
247
247
246
246
244
243
242
242
242
242
241
241
240
240
240
239
238
238
237
236
236
236
236
236
235
234
233
232
232
231
230
230
230
230
230
230
229
228
228
226
226
225
225
224
224
223
223
222
221
221
220
220
220
218
218
218
216
216
216
216
215
215
215
214
213
213
212
211
211
211
211
210
209
209
209
208
206
206
205
205
205
204
204
204
202
202
202
202
202
201
201
200
200
199
199
199
199
198
197
196
194
194
193
192
192
191
191
191
190
190
190
189
189
188
188
188
188
188
187
186
184
183
183
181
181
180
180
180
179
178
177
177
175
174
174
173
173
172
171
171
171
171
171
171
170
170
170
169
168
168
167
167
166
166
165
165
165
164
164
164
164
163
163
162
161
161
160
160
160
159
157
156
155
155
154
154
154
154
152
152
152
152
151
151
151
151
150
149
149
149
149
149
148
147
147
146
146
145
145
145
145
144
144
144
144
143
143
143
143
143
142
142
142
142
141
141
141
141
141
140
140
140
140
139
139
138
138
138
138
138
137
137
137
136
135
135
135
134
134
134
134
133
133
133
133
133
133
133
132
132
131
131
131
130
130
129
129
129
129
129
129
128
128
128
128
128
128
128
127
127
127
126
126
126
126
125
125
125
124
124
123
123
123
123
122
122
122
122
121
120
120
119
119
119
119
118
118
118
118
118
118
117
117
117
116
116
116
116
115
115
115
115
114
113
113
113
113
113
113
112
112
112
112
112
111
111
110
110
110
110
110
109
108
108
107
107
107
106
106
106
106
106
105
105
105
105
105
105
104
104
104
104
103
103
103
103
102
102
101
101
101
101
101
101
100
100
100
99
99
99
98
98
98
98
97
97
97
97
96
96
96
96
96
96
95
95
95
95
94
94
94
94
93
93
93
93
93
93
92
92
92
91
91
91
90
90
90
90
89
89
89
89
88
88
88
88
88
87
87
87
87
87
86
86
86
84
84
84
84
83
83
83
83
83
83
83
82
82
82
82
82
82
81
81
80
80
80
80
79
79
79
79
79
78
78
78
78
77
77
77
77
77
77
76
76
76
76
75
75
75
75
75
74
74
74
74
74
73
73
73
73
73
72
72
72
71
71
71
71
70
70
69
69
69
69
68
68
68
68
68
67
67
67
67
67
67
67
67
67
66
66
66
66
66
66
65
65
65
64
64
64
63
63
63
63
63
62
62
62
62
62
62
62
62
62
62
61
61
61
61
61
60
60
60
60
60
59
59
59
58
58
58
58
57
57
57
57
57
57
57
56
56
56
56
56
56
56
55
55
55
55
55
55
54
54
54
54
53
53
53
53
53
53
53
53
53
53
52
52
52
51
51
51
51
50
50
49
49
49
49
49
49
49
49
48
48
48
48
48
48
48
48
47
47
47
47
47
46
46
46
46
45
45
44
44
44
44
44
44
44
44
43
43
43
43
42
42
42
42
41
41
41
41
41
41
41
41
40
40
40
40
40
40
40
40
40
40
40
40
40
39
39
39
39
39
39
38
38
38
38
38
38
38
38
37
37
37
37
37
37
37
37
36
36
36
36
36
36
36
36
35
35
35
35
35
35
34
34
34
34
34
34
34
33
33
33
33
33
33
33
33
33
33
32
32
32
31
31
31
31
31
31
31
31
30
30
30
30
30
30
30
30
30
30
29
29
29
29
29
29
29
29
28
28
28
28
28
28
28
27
27
27
27
27
26
26
26
26
26
26
26
26
25
25
25
25
25
25
25
25
25
25
25
24
24
24
24
24
24
23
23
23
23
23
23
23
22
22
22
22
22
21
21
21
21
21
21
21
20
20
20
20
20
20
20
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
18
18
18
18
18
18
18
18
18
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
16
16
16
16
16
16
16
16
16
16
16
16
16
15
15
15
15
15
15
15
15
15
14
14
14
14
14
14
14
14
14
14
14
13
13
13
13
13
13
13
13
12
12
12
12
12
12
12
12
12
11
11
11
11
11
11
11
11
11
11
11
10
10
10
10
10
10
10
10
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
8
8
8
8
8
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
