0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
2
3
7
7
7
7
7
7
7
7
7
7
7
7
7
10
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
11
10
7
7
7
7
7
5
4
0
0
0
0
0
0
0
0
2
2
2
2
2
2
2
2
2
2
2
9
3
3
3
3
3
3
3
3
8
7
7
1
1
5
4
2
3
6
8
8
7
5
4
0
1
2
3
3
3
3
2
2
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
1
1
1
1
1
1
1
1
0
2
2
2
7
8
9
9
10
10
12
15
15
15
15
16
16
16
16
16
16
16
16
16
16
15
15
15
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
18
18
18
18
18
18
18
18
19
19
21
21
21
21
21
21
22
22
22
22
23
23
23
23
24
24
25
26
26
26
26
26
26
26
26
26
26
26
26
26
28
29
30
30
30
31
33
34
34
35
35
36
37
38
38
38
38
38
38
38
39
43
43
46
51
53
54
62
63
66
68
70
72
74
75
76
80
80
81
82
82
83
83
87
89
90
90
90
89
89
89
89
88
88
84
83
81
80
78
76
74
66
64
66
66
70
73
73
72
71
71
71
71
69
69
69
69
69
69
69
69
69
69
71
71
72
72
72
72
72
72
73
73
73
73
73
74
76
78
81
82
82
86
87
87
88
88
90
92
97
104
105
106
111
112
120
123
125
127
128
128
129
129
129
129
129
129
129
128
123
118
118
117
115
109
109
110
110
110
109
109
108
107
106
106
106
105
105
104
97
100
101
100
98
90
90
90
91
93
93
93
93
96
98
98
104
108
111
115
122
125
131
135
136
137
137
145
145
147
148
149
150
150
155
158
159
159
166
169
170
171
172
174
175
176
177
179
179
179
179
179
179
177
177
174
173
172
169
168
163
162
161
160
158
158
157
156
155
154
153
151
151
149
148
148
147
147
147
146
146
146
145
144
143
142
141
136
136
135
131
132
134
135
135
135
135
136
137
137
138
139
140
143
145
146
147
148
148
151
152
156
156
158
159
159
160
160
164
166
167
169
174
175
176
177
177
179
179
183
186
187
188
190
192
196
200
203
206
212
212
211
210
209
210
211
212
213
216
222
226
226
227
227
228
229
230
231
230
230
229
231
234
240
249
251
251
252
253
254
254
255
255
263
265
266
269
269
270
270
272
274
274
274
273
269
277
282
279
278
286
288
295
300
304
305
306
307
310
310
311
312
313
314
315
316
327
329
333
333
334
336
337
338
339
343
344
345
349
349
350
350
354
356
356
357
362
365
372
373
375
377
378
378
379
381
381
381
383
383
385
385
384
384
382
382
383
384
384
385
390
392
393
393
394
400
402
403
403
403
404
405
407
408
409
410
410
410
411
412
414
414
415
415
415
416
422
423
424
432
434
437
440
437
437
438
439
436
434
435
446
449
451
452
454
454
453
454
455
457
458
465
466
467
468
469
469
468
468
466
465
462
463
464
465
471
472
473
475
478
483
486
483
478
476
474
465
459
464
468
480
490
491
492
492
492
492
492
496
497
498
499
504
505
505
505
505
505
506
507
507
509
516
516
517
517
524
525
526
527
527
527
527
527
527
531
536
536
537
538
539
540
540
542
543
548
550
550
550
551
553
553
553
553
558
566
567
571
572
573
574
575
575
576
578
578
578
578
579
579
580
582
581
587
589
590
593
593
593
593
595
599
600
603
604
608
610
611
613
616
618
620
622
629
630
631
632
632
632
631
630
630
633
637
639
643
644
645
645
646
649
650
651
652
655
656
657
657
656
655
655
655
653
657
658
662
665
666
666
664
663
664
665
667
669
670
673
673
674
674
674
675
675
675
675
675
677
680
679
679
678
676
672
672
674
674
675
676
676
675
669
668
667
667
667
667
666
666
661
660
659
657
657
656
656
657
659
660
660
661
661
659
658
658
650
650
650
650
651
652
652
651
651
650
648
647
646
645
642
642
642
642
642
642
642
642
642
641
637
637
639
642
642
643
646
646
646
646
645
644
644
644
644
640
639
637
636
636
636
636
636
637
638
638
637
627
627
626
626
626
626
626
626
626
626
626
626
626
626
619
617
616
614
614
611
606
606
607
604
603
603
603
604
606
608
609
611
617
618
618
618
618
605
603
598
595
593
592
588
583
581
578
578
575
574
572
571
568
567
567
567
568
563
562
562
561
561
561
561
562
562
562
562
562
562
561
558
557
556
556
555
554
554
553
552
551
550
549
549
549
549
549
550
550
550
550
548
546
539
537
535
534
534
535
535
538
539
539
539
539
539
543
545
546
554
559
569
569
568
567
567
566
564
562
562
562
562
562
562
562
562
563
563
564
566
566
566
566
566
566
564
563
563
565
570
572
576
593
599
605
607
607
607
607
607
610
613
621
623
626
632
633
634
635
637
643
646
650
651
652
652
653
655
657
660
661
663
665
669
672
676
680
684
691
692
692
693
694
695
696
697
698
698
699
700
702
707
710
716
718
719
720
722
722
716
710
708
705
702
688
668
666
662
660
658
657
657
657
657
657
657
657
657
657
657
657
657
657
657
654
648
646
645
642
643
644
646
649
648
645
644
640
631
630
628
623
622
621
620
617
612
608
607
606
599
597
595
591
589
590
593
593
593
587
577
573
564
553
552
551
544
544
544
541
540
539
538
536
533
526
525
523
523
523
523
523
523
520
510
500
493
491
490
485
477
474
471
468
467
466
457
456
456
455
454
449
448
448
443
443
442
440
438
440
443
430
429
428
427
421
415
411
407
398
398
396
382
379
376
374
371
370
366
361
359
355
353
353
353
352
353
354
353
340
339
339
338
332
314
307
303
296
289
278
276
273
269
261
258
251
248
247
247
245
244
237
234
231
226
222
220
215
204
198
195
191
184
180
175
171
172
188
191
183
177
176
174
173
174
174
170
152
154
152
149
146
142
138
133
125
123
121
117
113
99
97
93
93
94
94
95
95
93
93
92
89
85
83
82
78
73
71
69
66
62
53
49
48
47
45
34
25
24
24
24
23
22
21
21
24
24
25
25
26
28
30
32
39
47
49
50
51
51
53
54
55
55
55
65
68
70
73
75
79
86
86
88
92
93
94
95
96
95
95
94
94
96
103
106
116
121
123
124
128
136
140
146
150
153
155
155
152
173
176
174
174
176
178
181
187
189
180
168
180
185
190
195
202
203
204
209
218
223
225
227
234
237
240
245
246
248
249
249
254
262
265
272
276
279
281
292
299
305
309
316
335
340
341
341
342
354
354
352
352
353
354
354
356
362
364
370
373
374
376
378
382
387
398
402
404
413
416
418
423
429
432
433
434
444
438
440
443
444
445
446
450
451
451
455
457
459
460
462
471
472
472
475
477
482
491
493
494
496
502
516
523
523
523
523
523
523
527
529
531
538
539
540
540
541
542
543
543
543
553
554
555
569
578
582
591
593
592
592
590
592
597
601
603
605
611
612
613
617
622
623
624
625
626
633
635
637
644
646
647
649
648
643
642
642
644
649
650
652
656
656
657
657
657
657
657
657
657
657
657
657
657
659
660
661
663
665
669
672
692
705
708
712
713
720
721
720
719
718
715
712
706
703
700
698
697
696
695
694
693
693
692
690
689
688
687
682
676
673
668
667
664
661
659
658
655
654
652
649
648
647
646
642
639
634
632
631
630
628
623
621
619
610
607
607
607
607
606
605
603
597
591
575
570
570
564
563
564
566
566
566
566
566
565
565
564
564
564
564
564
563
563
563
563
563
563
564
567
568
569
569
568
566
563
553
547
544
543
542
539
539
539
539
538
538
538
534
534
535
537
539
542
544
551
551
551
551
551
550
550
550
550
550
551
552
552
553
554
554
554
554
557
557
558
559
561
561
561
561
561
560
560
560
561
561
561
562
563
565
568
567
567
568
570
573
574
576
577
578
582
584
586
591
594
595
600
604
610
612
619
618
618
617
613
608
606
604
603
602
602
605
606
606
607
606
606
615
617
618
619
621
623
625
625
624
624
624
624
624
625
625
626
626
627
628
629
638
638
638
635
635
636
636
636
637
638
641
642
644
644
644
644
645
645
644
643
641
640
639
636
636
640
643
643
643
643
642
642
642
642
642
642
647
649
650
651
651
651
651
651
651
650
650
650
650
651
661
662
663
661
661
660
660
659
657
657
658
659
660
662
663
663
667
667
667
667
669
669
670
671
676
676
675
675
674
673
673
674
678
678
679
680
680
680
676
675
675
675
675
675
673
673
673
672
671
667
666
664
663
663
664
665
666
663
661
658
654
653
654
655
656
656
656
656
655
652
651
648
647
647
646
645
644
643
643
642
634
632
629
630
630
631
631
630
629
627
626
624
619
618
617
615
610
607
606
604
600
599
596
595
593
593
593
593
593
592
592
586
583
580
578
578
568
562
562
562
562
561
557
555
549
549
541
538
537
536
534
533
532
532
531
530
525
525
525
525
525
525
525
525
525
526
525
525
524
524
521
521
517
505
504
503
500
499
497
495
494
494
493
483
481
480
480
479
479
480
480
480
479
479
478
478
479
480
480
482
486
494
494
494
495
497
499
501
502
510
518
523
525
525
526
527
528
529
530
531
533
534
535
535
539
540
540
541
543
548
550
552
552
553
561
561
561
561
561
561
557
556
548
547
547
543
542
537
533
529
522
513
519
520
520
520
519
519
513
512
512
514
517
519
519
519
538
537
536
532
530
528
525
523
522
521
521
521
521
521
515
514
512
509
508
507
504
503
502
502
500
495
492
491
488
487
480
479
474
471
468
467
465
464
462
461
457
457
454
452
451
451
451
451
451
451
451
447
446
446
447
447
448
446
442
441
438
437
436
436
435
434
433
430
430
429
428
421
419
418
417
416
415
415
414
409
408
407
406
402
400
399
401
403
405
406
406
406
403
401
400
395
395
395
394
394
392
383
383
381
381
380
380
379
378
373
372
365
363
361
358
356
350
348
348
348
348
348
348
337
335
333
332
331
327
327
327
327
326
325
324
315
314
312
304
303
303
300
300
286
282
279
273
272
271
264
263
260
259
257
257
256
256
255
254
241
238
235
231
230
230
230
230
231
231
231
231
231
231
230
228
225
218
216
215
212
212
212
211
207
205
204
202
200
198
197
195
191
188
182
180
177
176
174
171
171
170
169
169
166
162
162
162
161
157
155
154
152
151
150
148
147
147
146
135
133
120
117
116
111
111
111
108
107
100
100
97
95
95
95
95
95
95
95
97
97
97
97
97
97
96
83
82
82
85
81
82
79
78
83
84
74
54
53
53
52
50
47
46
46
46
46
46
45
45
44
44
44
44
44
42
39
38
37
37
36
36
36
36
34
32
31
30
30
29
29
29
29
31
32
22
19
13
9
7
6
6
6
6
6
7
8
9
10
8
8
8
8
8
8
8
8
8
8
8
6
4
5
5
5
4
4
3
2
2
2
2
2
2
1
1
1
1
0
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