2
2
2
2
2
2
2
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
2
2
2
2
2
2
6
16
16
20
23
28
30
30
29
27
26
23
22
18
17
15
13
11
9
7
6
3
3
2
1
2
2
3
1
1
0
0
0
2
3
3
3
4
5
5
4
3
3
2
2
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
3
5
6
8
12
13
15
19
27
31
32
32
33
37
39
40
41
44
45
46
48
53
58
65
66
69
71
72
75
77
78
79
79
80
83
87
90
94
96
99
101
104
108
114
115
118
119
122
124
125
129
131
135
136
138
139
142
142
142
142
142
142
142
141
141
134
135
139
138
138
137
137
134
133
131
119
117
106
101
102
105
109
113
116
120
121
118
111
110
109
107
105
98
95
95
95
95
95
95
95
95
95
93
92
91
90
89
89
88
87
86
85
84
83
81
79
73
69
67
52
49
49
48
43
39
35
29
26
23
20
18
15
12
10
7
5
2
0
0
0
0
0
0
0
0
0
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
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
2
2
2
2
2
3
3
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
2
2
1
0
0
0
0
0
1
4
5
5
4
4
4
3
3
3
3
3
3
7
7
6
4
3
2
2
3
9
16
32
32
7
11
11
11
12
13
13
14
14
14
16
23
25
34
34
32
31
30
30
30
30
30
30
30
30
31
31
32
33
34
34
34
34
34
33
30
31
33
33
33
32
31
31
31
31
31
30
30
30
30
30
34
36
37
38
38
38
37
36
27
27
27
27
27
26
26
26
27
27
27
27
30
29
26
26
27
28
28
28
27
27
27
27
27
27
29
29
29
29
31
31
31
31
36
36
35
35
34
36
37
35
36
38
39
41
43
43
56
59
59
59
57
55
55
54
57
55
49
42
44
41
40
37
35
34
33
33
34
38
39
38
37
37
37
34
32
31
32
33
33
33
31
31
28
31
28
27
27
29
35
36
36
38
40
41
41
41
40
40
39
39
34
31
27
27
24
24
25
20
14
5
2
3
5
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
2
4
4
16
16
16
15
13
13
13
13
14
14
14
14
14
14
14
14
14
14
15
25
25
24
27
27
28
28
31
34
35
37
41
47
51
55
71
73
73
74
74
74
75
80
80
78
56
56
34
33
32
31
30
22
19
19
5
6
5
3
2
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
4
6
7
9
11
12
12
12
12
13
15
16
17
19
18
18
17
17
17
17
17
16
15
15
14
9
7
4
0
0
2
4
5
5
3
2
1
2
0
1
2
2
2
2
2
2
4
4
4
4
4
3
3
0
4
4
2
3
4
0
0
0
0
0
0
0
0
1
0
0
0
0
0
2
7
17
15
11
8
7
7
7
7
6
7
8
10
9
7
3
2
1
3
3
4
5
6
7
12
10
12
13
15
16
15
8
11
12
14
12
7
6
3
0
1
6
10
8
6
4
5
6
7
7
3
3
5
8
2
3
4
5
4
2
2
2
3
0
1
3
4
4
4
3
2
2
2
2
2
1
1
2
3
4
6
5
5
1
1
4
7
8
8
9
9
9
9
9
10
10
9
8
7
7
7
8
9
10
11
12
13
16
18
20
24
23
22
8
7
5
4
3
2
2
12
14
3
2
2
2
2
3
4
5
4
3
1
0
1
3
4
5
6
6
9
9
10
10
11
11
11
14
14
14
14
9
7
5
5
5
5
6
7
8
6
3
3
3
2
2
1
1
1
2
3
3
4
4
4
5
5
6
6
7
7
7
7
7
6
5
4
3
2
0
0
0
0
2
2
9
13
14
14
14
14
13
13
14
15
17
22
23
25
26
29
30
29
28
31
33
36
37
33
34
37
39
42
44
44
44
44
44
44
45
48
52
62
63
67
68
69
70
71
71
66
66
64
63
63
64
62
61
52
52
51
49
48
47
44
43
42
42
43
44
41
39
37
36
34
32
33
33
35
36
39
39
40
41
43
43
42
41
38
36
35
35
34
32
32
31
30
28
27
25
33
34
34
35
36
37
38
39
39
40
40
40
40
40
37
37
36
34
36
38
43
45
47
46
45
43
41
41
42
43
43
38
36
34
32
37
40
37
34
31
31
31
31
32
33
40
40
39
38
23
23
29
31
31
27
27
18
22
29
25
23
20
20
21
21
20
20
16
14
13
12
12
14
18
19
17
10
9
11
18
20
20
18
16
13
12
10
8
6
5
8
13
20
21
22
27
36
36
36
28
22
21
17
14
14
15
14
12
10
10
10
10
10
10
9
9
9
9
9
8
7
5
0
2
4
6
10
15
18
20
22
25
28
29
31
32
30
28
25
23
22
19
18
13
24
24
24
28
30
36
40
46
40
36
45
47
47
47
46
46
46
48
48
48
49
51
52
52
50
36
43
49
50
38
37
40
43
50
53
50
45
46
51
53
55
56
59
60
63
68
81
86
89
89
86
83
82
83
86
90
92
95
100
104
100
96
98
104
105
105
105
105
105
108
108
112
115
118
116
101
103
108
115
119
125
136
138
137
135
138
141
136
129
127
130
139
142
145
147
147
143
139
139
140
144
164
164
164
162
156
161
167
167
152
145
131
117
127
136
144
144
151
157
167
179
196
218
210
206
200
192
180
173
170
168
166
163
157
184
177
177
178
181
184
194
215
204
198
199
200
220
229
230
229
225
221
216
214
213
208
198
196
196
195
190
188
185
183
181
178
178
178
182
190
196
191
187
186
186
187
187
188
188
185
183
182
178
180
180
180
181
181
182
182
183
184
187
190
192
193
186
180
176
172
159
154
150
149
153
157
161
164
171
176
178
182
181
180
177
175
174
171
169
169
170
159
154
159
162
157
154
153
153
167
154
148
142
138
135
132
129
129
129
128
128
128
128
127
130
132
133
132
129
121
120
120
119
118
114
111
122
119
116
109
107
106
105
103
102
104
105
105
104
103
99
95
92
89
88
92
92
92
92
93
90
90
82
81
80
79
79
79
79
81
83
88
64
65
67
69
71
73
74
75
69
66
64
62
57
56
54
49
48
46
45
48
50
53
55
54
51
48
44
43
43
43
43
43
43
43
46
50
56
56
69
71
72
73
73
73
73
73
73
73
73
73
76
78
78
78
78
77
76
75
72
70
67
64
63
62
61
60
59
58
56
55
53
52
50
48
47
46
44
41
41
48
50
48
42
43
43
44
45
47
48
49
49
48
48
52
53
55
59
58
56
52
49
48
49
50
54
55
56
56
60
63
67
73
75
79
80
80
82
83
84
84
85
85
82
80
78
75
72
72
73
75
77
80
86
86
87
87
88
88
89
89
91
90
89
89
94
97
95
94
92
89
89
88
91
93
96
98
108
106
106
106
108
108
104
94
94
94
95
96
97
89
80
79
79
77
74
72
68
64
60
60
60
60
62
63
61
52
47
44
40
38
38
36
35
32
31
28
26
23
22
17
12
12
4
4
4
4
6
11
10
9
7
9
15
14
12
12
12
13
13
14
14
15
15
18
23
26
31
31
34
37
42
44
46
48
48
45
53
55
55
55
55
54
52
46
42
40
37
36
34
33
31
29
26
25
25
24
24
23
23
21
21
21
21
22
17
20
18
17
14
13
11
10
9
8
8
6
3
3
3
5
7
8
10
10
9
8
7
7
7
6
6
6
6
7
7
7
4
1
0
0
0
0
4
5
4
4
4
5
7
7
7
7
7
7
8
9
12
12
12
12
12
12
11
10
10
1
0
0
0
1
4
7
7
10
11
11
13
14
15
23
21
18
20
23
27
28
29
29
30
30
31
30
19
19
17
16
16
15
14
14
14
16
24
24
28
29
30
25
18
18
20
20
21
22
23
24
27
27
27
36
45
51
52
52
52
52
54
55
57
57
57
57
57
57
57
57
59
63
68
72
75
79
79
80
80
80
80
82
83
87
88
88
89
90
92
94
97
97
97
97
96
96
96
95
94
94
95
96
97
98
99
103
107
120
125
129
130
133
134
140
143
151
157
159
159
161
163
164
164
164
164
165
165
166
167
167
169
170
170
171
173
176
180
182
185
190
191
190
189
188
188
186
187
195
198
201
205
203
202
202
201
202
203
204
205
206
206
206
206
206
206
206
207
207
207
208
208
208
209
210
210
216
220
224
227
234
235
234
233
230
229
227
227
227
228
244
244
244
243
243
243
243
243
243
243
247
249
252
255
257
257
258
258
259
261
261
262
265
266
267
268
270
273
275
279
279
277
271
269
266
265
268
270
281
282
283
285
305
303
296
305
308
317
318
320
322
329
331
333
335
346
349
349
349
349
348
348
349
353
358
362
367
367
367
367
367
367
370
375
377
379
387
395
418
420
422
423
424
426
427
428
429
431
436
439
442
445
447
449
456
457
457
458
461
464
465
466
468
470
484
490
493
496
498
499
499
500
500
500
501
502
503
505
506
507
508
514
515
517
538
538
539
542
545
546
547
554
557
561
565
568
569
569
569
569
571
574
577
576
576
575
576
581
584
587
589
590
590
593
596
597
598
601
604
612
617
619
620
626
636
643
649
652
652
652
652
652
654
661
672
671
672
684
705
705
706
706
716
728
727
726
722
724
732
745
753
753
751
748
764
777
784
784
784
784
788
789
781
773
778
782
783
784
800
812
823
824
825
826
828
830
831
832
834
850
850
852
854
858
859
861
865
866
867
871
877
887
887
886
900
908
917
932
934
934
936
941
950
959
964
968
980
989
994
992
989
995
1001
1007
1005
1006
1009
1019
1030
1025
1017
1015
1013
1010
1008
1006
1010
1015
1022
1022
1023
1025
1029
1045
1050
1053
1053
1055
1055
1057
1059
1060
1073
1080
1080
1083
1100
1103
1105
1107
1110
1111
1112
1113
1114
1114
1114
1114
1118
1125
1128
1131
1134
1139
1143
1148
1156
1161
1170
1172
1172
1178
1183
1180
1178
1189
1208
1215
1222
1230
1233
1235
1235
1236
1237
1236
1235
1235
1234
1231
1226
1222
1224
1226
1226
1223
1221
1223
1225
1228
1231
1235
1235
1235
1235
1236
1237
1238
1240
1243
1245
1243
1244
1253
1260
1274
1274
1275
1274
1272
1266
1261
1262
1266
1276
1276
1275
1273
1272
1271
1270
1269
1280
1283
1283
1283
1283
1284
1286
1288
1292
1292
1293
1297
1302
1309
1322
1326
1320
1316
1313
1308
1307
1306
1305
1307
1311
1314
1311
1306
1302
1305
1306
1307
1304
1301
1304
1307
1308
1308
1309
1309
1310
1310
1313
1316
1321
1325
1327
1329
1335
1339
1344
1349
1361
1363
1366
1369
1372
1375
1379
1383
1387
1393
1396
1399
1403
1407
1403
1401
1398
1399
1403
1406
1411
1415
1418
1419
1420
1420
1421
1421
1423
1424
1425
1426
1429
1430
1431
1431
1431
1430
1430
1428
1428
1427
1427
1428
1429
1429
1434
1437
1443
1447
1450
1453
1455
1458
1463
1467
1472
1482
1493
1495
1499
1523
1529
1534
1556
1561
1566
1566
1560
1557
1560
1563
1570
1606
1591
1585
1580
1577
1574
1571
1568
1566
1565
1565
1563
1561
1559
1561
1565
1568
1575
1578
1589
1587
1585
1581
1581
1589
1608
1623
1585
1590
1593
1609
1664
1666
1670
1666
1663
1661
1667
1669
1678
1689
1708
1700
1693
1687
1681
1678