42
42
43
43
45
50
50
58
57
57
57
60
62
65
65
64
64
65
65
65
66
72
72
73
73
78
78
79
79
79
81
81
82
82
83
84
84
85
85
85
86
87
87
87
87
87
87
87
87
87
87
87
88
88
89
94
94
94
94
98
98
98
98
98
98
98
98
100
100
99
99
100
100
100
105
105
108
108
109
110
109
109
109
109
109
109
109
110
110
113
116
119
122
128
131
131
132
134
143
143
143
145
147
148
148
150
151
153
153
154
154
154
155
156
156
156
156
157
160
162
176
182
184
187
192
193
195
198
199
202
206
208
209
210
211
212
212
212
212
211
211
211
211
211
212
212
213
215
215
216
221
221
222
226
226
227
227
229
230
235
236
236
237
237
238
238
238
239
240
241
242
242
245
246
246
246
239
238
238
237
236
242
245
249
251
253
257
258
262
263
267
268
269
269
269
270
271
272
273
274
278
279
281
282
283
285
289
290
291
291
293
294
295
296
297
298
298
298
295
295
294
293
295
297
298
299
304
306
307
307
307
307
307
306
306
306
306
309
311
311
312
314
316
317
317
316
316
316
315
312
312
312
315
316
321
323
327
332
333
334
334
336
337
338
341
341
341
341
341
342
344
347
349
351
352
352
352
352
352
352
352
351
350
350
348
348
348
348
348
348
347
346
344
343
341
338
337
333
333
333
333
333
333
333
333
331
330
329
326
325
324
321
321
321
320
320
319
319
318
318
318
319
319
320
320
321
321
320
318
314
313
311
311
312
314
314
314
318
325
327
332
335
335
335
335
335
335
335
335
336
337
338
339
340
345
345
346
348
350
353
353
354
354
355
357
358
358
358
364
367
368
369
372
374
374
373
373
371
371
372
373
375
376
377
377
382
382
382
382
382
382
382
382
382
388
389
390
391
393
395
396
401
401
402
403
404
406
407
412
414
417
418
417
413
409
407
407
408
409
410
410
411
411
413
415
416
417
418
422
422
422
422
422
410
408
407
403
400
399
397
397
398
398
398
398
397
397
396
391
390
389
385
377
377
376
376
375
375
375
374
374
374
370
369
368
367
366
365
365
365
365
363
359
357
355
353
349
348
347
346
346
345
343
342
341
338
336
335
333
330
329
329
330
330
331
331
332
333
333
334
335
336
337
338
339
339
341
343
346
347
352
353
354
355
355
355
355
355
353
352
351
349
347
347
347
346
345
345
343
341
341
342
339
333
331
328
325
323
323
323
309
309
309
310
311
315
318
320
320
320
319
316
314
311
310
308
304
303
303
301
301
300
297
296
293
292
292
291
291
290
289
285
284
282
280
276
274
274
273
272
272
269
268
266
264
263
261
257
255
254
245
239
238
237
235
235
231
230
228
226
224
220
218
216
218
219
220
221
228
227
226
225
223
220
219
218
217
214
212
210
207
206
205
205
200
200
200
200
200
200
199
198
197
196
190
188
185
184
176
175
175
173
168
167
166
165
164
163
162
160
158
151
149
147
145
143
141
140
138
137
136
135
133
133
125
124
121
117
117
116
115
114
114
113
110
108
105
99
95
92
90
90
90
90
90
90
90
90
89
88
86
83
82
80
75
74
72
69
68
67
66
66
65
65
65
63
62
62
62
61
61
61
60
60
50
39
39
37
36
35
29
29
27
27
27
27
27
26
26
26
23
22
22
22
22
22
21
26
26
26
26
27
27
27
27
26
26
25
25
25
25
26
26
27
27
27
28
28
28
27
27
26
26
26
26
26
27
27
27
27
29
28
28
28
28
28
28
31
31
31
31
31
31
31
36
36
36
36
36
36
36
36
36
40
44
43
45
44
42
42
41
41
41
41
41
40
40
39
36
41
47
57
59
51
42
33
34
37
42
43
40
40
36
38
39
39
40
40
41
41
41
43
43
44
44
44
44
46
46
46
46
46
46
46
47
50
50
49
49
49
49
49
50
50
50
50
50
50
49
49
49
49
48
48
48
46
46
45
45
44
44
44
44
44
44
44
44
44
44
44
44
44
43
43
43
43
43
43
43
45
45
45
46
46
46
46
48
50
50
47
48
51
51
50
53
53
53
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
58
58
58
59
59
61
61
62
62
62
62
62
63
67
68
69
76
83
84
85
89
90
90
90
90
90
89
89
88
74
72
72
72
71
71
71
69
67
66
63
57
59
62
58
57
56
57
58
59
60
60
60
60
60
60
60
60
61
62
64
65
66
67
67
67
67
67
66
63
61
60
58
57
57
57
57
57
57
59
60
57
57
57
57
57
58
58
59
61
62
62
63
63
64
65
65
66
66
67
67
66
66
65
64
63
63
63
62
62
62
62
62
62
63
63
63
63
63
64
64
65
66
67
68
68
70
71
71
71
71
70
69
69
71
72
67
67
63
60
63
64
65
66
67
69
70
77
78
99
102
104
105
106
108
109
111
113
125
126
127
129
135
136
138
138
138
139
139
139
139
144
146
148
150
156
156
153
153
153
153
153
153
153
153
151
151
149
149
148
147
146
144
143
142
133
132
131
131
130
119
118
116
113
112
111
111
111
111
111
104
103
102
103
104
105
106
114
117
118
120
121
122
127
128
130
131
135
136
146
146
145
145
144
142
142
143
144
150
151
153
154
158
159
162
163
170
171
172
176
177
178
180
188
189
190
192
193
194
195
195
197
198
198
199
199
201
202
202
206
207
207
208
208
209
212
214
218
219
221
222
224
225
225
227
227
228
228
228
228
228
228
228
228
229
230
230
231
237
238
239
242
243
244
250
258
259
260
261
261
262
262
262
263
263
265
266
267
268
271
272
274
279
283
288
289
290
291
291
292
292
293
293
293
294
294
294
294
295
295
296
296
296
296
299
300
302
303
306
307
308
309
309
310
310
310
311
312
312
313
313
313
314
314
314
315
316
318
320
320
320
320
318
317
316
316
316
316
316
316
318
319
320
320
321
321
322
322
323
324
324
324
324
326
326
327
319
319
319
318
312
311
310
309
308
307
307
306
306
306
307
307
307
306
305
305
306
306
307
308
309
309
309
310
311
312
316
317
318
318
318
319
320
321
326
327
328
329
330
331
333
334
335
339
341
342
343
348
348
349
349
351
352
353
356
357
357
358
359
360
363
364
364
365
365
366
367
368
369
370
374
376
378
378
377
376
376
376
375
375
375
375
375
374
374
374
374
373
370
369
368
367
367
367
367
367
367
366
366
365
364
363
363
363
363
364
365
366
368
369
370
371
370
369
369
369
370
373
374
377
379
379
379
379
374
373
371
369
367
367
361
361
360
360
359
359
359
360
360
361
362
362
360
359
357
356
355
354
353
340
337
337
336
336
335
335
335
335
335
335
336
336
336
337
337
337
337
337
337
336
336
335
335
333
334
341
342
343
346
346
345
343
342
340
339
336
329
329
328
328
324
323
321
311
311
310
309
308
307
306
301
299
297
295
291
289
287
285
283
279
279
279
279
279
279
278
278
276
274
261
258
255
256
259
266
268
269
269
269
277
279
284
287
291
291
291
292
293
293
293
295
295
297
298
300
303
307
308
314
314
314
314
315
315
315
318
319
319
320
320
320
321
324
324
325
332
335
335
335
335
335
335
335
336
336
336
337
337
337
338
346
351
352
352
352
352
352
352
352
352
352
352
352
352
352
352
369
370
371
373
387
393
394
394
394
395
396
397
397
397
398
398
398
399
399
399
399
400
400
401
401
402
403
408
409
410
411
412
413
413
413
413
414
416
418
424
426
441
442
443
443
444
444
445
446
446
446
446
446
446
446
446
446
446
452
464
468
469
469
469
470
473
474
476
478
481
483
484
486
487
488
489
491
492
493
493
493
490
489
489
488
489
490
490
490
491
492
496
498
519
520
525
526
527
537
540
554
554
554
554
553
553
553
553
557
559
574
581
588
591
593
595
596
596
597
597
598
599
604
606
605
606
608
613
613
611
612
613
615
617
621
621
622
623
624
625
627
631
640
645
648
649
650
650
651
653
654
657
657
657
657
657
663
665
666
667
670
673
674
675
675
677
678
678
679
679
680
681
683
687
690
691
703
704
707
708
708
713
713
713
714
714
715
715
716
716
717
717
718
718
719
720
721
721
724
726
728
729
730
732
731
730
729
729
729
729
729
729
729
729
729
731
733
736
737
737
738
738
738
739
739
740
740
740
740
741
741
741
741
741
743
744
746
748
749
749
749
749
749
749
749
749
749
753
758
760
763
767
768
767
767
764
764
763
763
761
761
761
761
761
761
761
760
760
760
760
760
762
770
772
773
774
776
776
773
772
771
771
770
769
769
769
769
770
770
771
771
771
774
778
779
780
781
782
782
784
785
785
787
790
790
791
791
791
790
790
790
790
791
797
798
800
801
803
804
813
813
813
813
812
812
812
812
811
809
810
811
813
815
817
829
844
847
848
849
849
850
850
852
855
859
862
864
864
864
863
862
861
861
862
865
872
873
873
878
875
874
873
871
871
865
862
862
862
862
862
862
861
861
861
860
859
859
859
859
859
859
858
858
858
857
856
851
850
848
848
846
844
841
841
841
841
841
841
841
841
841
841
840
839
839
838
837
837
834
834
831
829
826
825
823
822
821
821
820
819
818
817
816
815
815
814
814
815
817
817
817
821
819
819
818
818
817
817
816
814
813
812
811
809
807
807
806
805
803
802
800
799
784
783
780
779
776
775
781
784
777
758
756
753
749
748
747
746
746
744
739
739
738
737
737
736
735
735
735
734
734
730
729
725
722
716
714
714
712
709
707
693
693
692
692
691
691
691
691
690
690
689
684
683
682
681
675
673
672
669
662
657
655
652
648
647
647
646
646
646
645
645
645
645
644
644
644
645
647
648
648
649
650
651
653
654
654
654
655
655
655
655
655
655
656
657
657
658
658
658
658
659
659
659
659
660
661
661
662
663
663
663
662
662
661
661
660
659
659
658
657
656
656
655
655
654
653
653
652
652
652
647
643
643
644
645
647
648
649
638
637
633
631
623
621
619
618
617
616
615
615
615
613
613
613
613
613
611
610
610
609
608
608
607
607
606
606
605
604
604
603
601
601
599
596
595
595
594
592
592
591
591
590
589
587
583
580
578
570
568
567
567
565
563
562
557
556
554
552
551
546
542
536
531
523
519
518
517
514
514
513
513
513
513
510
508
508
507
507
505
505
505
505
505
505
504
500
495
496
500
501
503
506
510
512
517
519
521
526
529
529
530
531
535
538
542
542
542
542
542
542
543
543
544
546
546
547
549
549
550
552
557
559
560
562
571
574
576
580
583
586
588
589
593
594
597
599
599
603
604
608
614
617
621
622
623
623
623
623
623
623
623
623
623
624
624
624
625
625
625
627
629
629
631
632
631
631
629
628
628
628
628
628
628
628
628
628
628
628
629
629
629
629
629
630
630
630
630
630
630
630
630
629
629
629
626
625
624
621
621
622
623
623
624
625
626
627
628
628
628
627
627
626
626
626
626
630
630
631
631
631
631
631
631
631
631
631
631
631
631
632
632
632
633
633
633
634
634
636
636
637
638
638
638
638
638
637
637
637
637
636
636
636
636
636
636
636
636
635
635
635
635
635
635
635
634
634
634
635
636
638
638
639
640
641
641
642
642
643
644
644
645
646
646
647
648
649
650
651
652
653
653
653
652
652
651
651
649
640
639
638
636
636
635
635
631
630
629
628
628
627
627
626
623
622
621
621
621
621
620
620
619
619
619
618
614
613
611
609
608
607
606
606
605
604
604
604
603
603
602
601
601
600
596
595
594
593
592
591
590
590
589
585
585
585
585
585
585
585
585
585
583
583
583
583
582
582
582
582
581
579
579
578
578
576
575
574
573
572
572
570
570
567
566
566
565
562
559
558
557
557
555
553
553
553
552
548
548
546
544
544
544
544
544
544
544
544
544
543
543
543
543
543
543
543
542
542
542
541
540
539
539
539
538
537
536
536
535
534
534
533
533
535
536
537
537
537
536
534
533
532
531
531
531
531
531
531
530
530
529
528
527
527
527
528
528
528
528
529
529
529
530
530
532
533
533
533
533
533
533
533
533
533
532
531
531
529
528
527
526
524
523
523
523
523
523
523
522
522
521
521
520
520
520
519
519
518
518
518
517
516
516
516
516
516
516
514
514
513
513
512
511
507
500
498
496
493
492
492
486
486
486
486
484
480
479
478
477
477
475
475
474
474
473
472
472
471
472
473
473
473
474
474
474
473
472
472
473
473
473
472
472
472
473
473
474
477
476
474
470
469
468
468
468
468
468
468
468
469
469
469
469
469
469
469
469
469
469
469
469
469
468
467
466
464
464
464
464
464
464
463
463
463
462
459
458
459
459
459
460
460
461
461
463
463
463
462
459
457
455
449
447
446
445
444
442
442
442
442
442
439
439
438
437
441
444
442
439
438
436
434
434
433
433
434
438
437
436
434
434
433
433
433
433
433
433
433
433
433
430
429
440
441
443
444
451
451
451
450
450
450
450
450
450
450
451
451
452
452
453
454
455
455
458
459
450
450
450
451
451
451
452
452
451
450
449
448
448
438
437
436
436
430
429
429
428
428
421
420
419
414
399
397
397
395
394
389
388
387
387
384
384
384
382
382
383
383
384
391
392
393
393
392
391
387
386
385
385
382
369
369
368
368
368
368
360
360
360
359
359
359
359
359
359
358
358
358
358
358
357
356
356
356
356
356
356
356
356
356
356
352
349
345
343
340
340
340
340
340
340
341
342
344
344
344
345
345
346
348
348
349
348
347
347
345
344
344
344
342
342
342
331
330
322
322
322
322
322
322
322
322
323
323
322
320
320
319
312
312
312
312
312
312
311
311
308
307
307
306
302
302
302
302
302
302
302
300
299
299
298
296
296
296
295
295
297
299
301
302
303
305
306
307
308
311
311
311
311
302
300
300
297
285
285
285
285
285
285
285
285
284
274
272
272
272
272
272
272
272
272
272
272
272
271
271
271
253
249
246
241
227
225
225
223
221
220
218
200
195
191
188
195
198
200
200
197
197
197
196
196
196
196
196
199
204
204
205
205
206
207
209
210
210
211
211
211
211
211
212
212
212
213
213
214
214
214
211
214
203
201
200
200
200
194
193
192
185
181
181
180
172
172
170
170
170
169
169
168
167
167
166
162
158
158
157
156
154
153
153
152
150
149
149
148
148
145
152
135
131
130
129
128
128
127
127
127
127
127
127
127
127
127
127
127
126
126
126
126
126
126
126
126
126
126
127
127
127
126
126
126
126
122
122
122
122
115
115
114
114
114
113
113
112
112
112
112
112
112
112
112
111
111
111
111
111
110
110
110
110
109
108
107
111
109
104
102
102
102
103
103
103
103
103
103
102
102
100
104
106
106
107
108
109
109
109
109
109
111
112
113
113
114
114
115
115
116
115
115
114
113
113
112
111
110
105
105
102
102
99
99
99
101
99
99
92
92
85
84
84
84
84
83
78
76
84
85
87
92
93
95
96
96
96
96
97
97
98
103
110
110
111
112
113
114
115
116
118
119
119
123
124
125
125
126
126
127
127
128
128
128
128
128
128
128
128
128
128
125
124
123
121
120
120
121
124
126
127
128
129
129
129
129
129
129
129
129
129
134
137
137
138
138
140
142
150
151
151
151
151
152
153
153
153
154
155
155
154
154
154
154
153
153
153
153
153
153
154
156
157
157
160
161
161
162
163
164
170
172
173
176
178
180
181
182
186
187
187
186
185
185
185
185
185
195
196
198
200
201
201
201
201
200
200
199
199
197
199
200
201
204
205
207
208
209
210
211
211
211
217
218
219
222
222
223
228
229
230
231
231
234
235
240
242
245
246
250
247
247
246
245
245
244
244
245
250
251
252
252
253
254
257
258
262
263
265
267
270
272
274
276
276
276
280
282
282
284
286
287
289
289
290
290
290
291
291
291
292
293
295
297
299
301
301
306
307
308
310
312
317
315
313
311
310
310
310
311
313
315
319
321
322
324
324
324
325
325
325
325
327
327
328
329
331
332
333
333
333
333
333
333
333
334
334
334
335
337
341
343
345
346
349
351
352
348
347
347
346
345
344
344
344
342
342
341
341
338
337
335
335
334
333
331
331
331
327
326
325
324
324
320
319
319
316
315
312
311
310
309
308
305
305
304
299
297
295
292
290
290
291
291
292
292
293
294
295
296
293
290
289
288
287
287
286
282
280
277
271
270
268
266
266
268
269
270
271
272
273
273
274
274
275
274
273
273
270
270
270
269
268
268
264
263
261
260
259
247
247
246
246
245
244
242
240
239
239
236
233
231
229
228
225
225
223
221
219
217
214
208
197
195
194
192
191
190
189
189
189
188
188
188
187
187
182
181
179
177
177
178
179
180
181
183
183
183
181
179
178
176
175
174
174
172
172
172
172
171
171
169
168
167
165
164
163
161
156
154
152
148
144
144
143
141
140
139
139
133
133
133
133
133
133
134
136
138
139
139
140
141
141
141
141
142
142
142
143
143
144
155
159
159
160
160
159
158
160
164
164
168
175
171
170
169
169
168
168
167
167
160
148
147
147
147
144
142
133
129
129
128
125
125
119
117
116
114
113
113
112
111
113
112
108
106
104
104
105
97
97
101
101
99
95
93
93
90
85
81
77
76
67
67
65
65
63
62
59
59
59
59
58
49
43
43
41
41
41
41