0
0
0
0
0
0
0
0
0
0
0
0
0
1
2
2
2
2
2
2
2
2
2
3
3
3
3
3
4
4
4
4
4
5
6
6
6
8
8
8
10
12
12
12
16
18
20
23
23
26
29
29
33
36
38
47
56
56
56
57
57
57
58
58
58
58
58
58
59
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
60
61
61
61
61
61
61
61
61
61
61
61
61
61
61
61
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
63
63
63
63
63
63
63
64
68
73
78
78
83
83
83
84
84
84
87
87
87
88
88
88
89
89
89
89
89
89
89
89
89
89
89
89
89
89
89
92
92
92
97
108
115
116
123
130
139
139
139
139
139
139
139
139
139
139
140
140
140
140
140
140
141
141
141
141
141
141
141
141
141
141
141
141
141
141
141
141
141
141
141
141
141
141
141
141
141
141
141
141
141
141
141
141
141
141
141
141
141
141
141
141
142
142
142
142
142
142
142
143
148
152
152
156
159
164
168
172
173
174
175
176
176
176
176
176
176
176
176
176
176
176
176
176
177
178
178
178
178
178
178
178
178
178
179
179
179
179
179
180
180
180
180
180
181
182
182
182
184
184
184
186
188
188
188
192
194
196
199
199
202
205
205
212
220
225
235
254
254
254
255
255
255
256
256
256
256
256
256
257
257
257
257
257
257
258
258
258
258
258
258
259
259
259
259
259
259
259
259
259
259
259
259
259
259
259
259
259
259
259
259
259
259
259
259
260
260
260
260
260
260
260
260
260
260
260
260
260
260
260
261
261
261
261
261
261
261
261
261
261
261
261
261
261
261
261
261
261
261
261
261
261
261
261
261
261
261
261
261
261
261
261
261
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
262
263
263
263
263
263
263
263
264
264
264
265
265
265
265
266
270
275
280
280
285
285
285
286
286
286
289
289
289
290
290
290
291
291
291
291
291
291
291
291
291
291
291
291
291
291
291
294
294
294
299
312
321
323
333
343
354
354
354
354
354
354
354
354
354
354
355
355
355
355
355
355
356
356
356
356
356
356
356
356
356
356
356
356
356
356
356
356
356
356
356
356
356
356
356
356
356
356
356
356
356
356
356
356
356
356
356
356
356
356
356
356
357
357
357
357
357
357
357
358
363
368
368
372
376
381
385
390
392
393
394
395
395
395
395
395
395
395
395
395
395
396
396
396
397
398
399
399
399
399
399
399
399
399
400
401
402
402
402
403
403
403
404
404
405
406
407
407
408
408
408
410
415
415
415
420
424
428
431
431
436
441
450
458
469
478
486
500
500
500
501
501
501
502
502
502
502
502
502
503
503
503
503
503
503
504
504
504
504
504
504
505
505
505
505
505
505
505
506
506
506
506
506
507
507
507
507
507
507
507
507
507
507
507
508
509
509
509
509
509
509
509
509
509
509
509
509
510
510
510
511
511
512
513
513
513
513
513
513
513
513
513
514
514
514
515
515
516
517
517
517
517
517
517
517
518
519
520
521
522
523
524
525
526
526
526
526
526
526
526
527
527
527
528
528
528
528
528
528
528
529
529
529
530
530
530
530
531
532
533
534
534
535
536
539
544
549
554
559
564
564
564
565
569
573
576
576
579
582
587
590
593
593
593
593
593
596
600
600
600
600
600
600
600
604
604
609
609
609
614
625
630
637
652
665
676
676
676
676
676
676
676
676
676
676
677
677
677
677
677
677
678
678
678
678
678
678
678
678
678
678
679
679
680
680
680
680
680
680
680
680
680
680
680
680
680
680
680
680
680
680
680
680
680
680
680
681
681
682
682
682
683
683
683
683
683
683
683
684
689
694
694
698
702
707
712
717
720
721
722
723
