1
2
2
4
1
1
0
2
1
1
1
2
0
2
0
0
0
1
1
1
1
2
1
2
1
0
2
2
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
2
0
0
0
0
0
1
0
3
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
2
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
2
0
0
0
0
0
2
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
2
1
0
0
1
2
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
2
0
0
1
1
0
1
1
0
1
1
2
1
0
0
0
0
0
0
2
0
1
0
0
0
0
0
0
0
2
1
0
0
0
1
2
0
0
0
0
0
3
0
0
0
1
0
1
0
1
0
1
0
1
2
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
2
0
1
0
1
1
0
1
1
0
0
1
0
3
0
1
1
1
0
0
1
0
0
1
1
1
0
2
0
1
0
2
1
1
0
0
1
1
0
2
2
0
1
1
0
1
1
1
1
0
0
0
1
0
0
2
0
1
2
1
0
1
1
0
1
1
2
0
1
1
0
0
2
1
2
1
0
0
0
2
0
1
3
0
1
0
2
0
0
3
3
2
1
0
1
1
2
1
1
0
0
2
1
1
1
2
1
1
1
1
4
2
0
0
2
1
3
0
2
1
1
2
3
2
0
2
2
2
2
2
3
2
1
0
0
3
2
1
3
1
2
1
5
1
0
4
3
6
2
1
2
5
2
6
2
0
2
1
2
2
2
0
5
1
2
0
4
4
3
4
3
1
3
3
5
4
4
3
3
4
2
2
3
3
3
4
4
2
1
3
6
5
2
2
2
0
5
3
2
4
2
7
5
7
2
4
3
3
5
2
6
4
3
0
6
4
7
7
6
8
5
3
9
4
6
7
5
4
7
5
3
6
6
4
9
5
2
8
3
10
4
6
2
5
6
9
11
5
9
13
15
4
7
10
8
10
6
9
6
8
9
14
10
6
11
10
12
13
8
14
13
14
14
11
9
13
13
11
13
9
17
8
13
9
18
13
9
10
14
20
15
16
23
14
21
17
17
17
17
22
19
17
19
28
14
20
21
17
23
13
21
19
24
18
25
22
26
24
27
24
29
28
33
28
21
29
26
34
27
27
29
21
33
28
32
34
30
20
40
31
42
35
29
34
42
43
35
43
46
50
31
58
40
48
54
56
52
55
55
60
65
78
60
61
71
74
86
75
68
73
82
87
87
98
112
108
113
119
102
129
154
139
159
165
177
155
174
167
200
234
251
234
274
297
290
325
311
355
346
399
422
409
417
432
526
546
555
560
647
639
647
684
704
760
795
794
801
844
865
877
874
890
916
943
976
967
914
1006
1054
958
1022
966
1036
1060
1067
1082
1114
1185
1166
1140
1099
1125
1180
1123
1098
1176
1164
1177
1183
1204
1112
1053
1103
1095
1030
1006
1007
975
904
825
794
761
716
689
645
604
533
513
524
490
474
408
374
353
311
307
256
240
226
185
156
156
135
131
128
79
71
63
60
45
44
38
27
22
20
10
10
7
5
7
6
5
3
2
2
0
1
2
0
0
1
1
1
0
0
2
1
0
0
0
1
1
1
0
1
0
1
2
0
1
0
1
1
1
0
1
0
1
0
0
1
0
2
1
0
1
0
0
0
0
1
0
0
0
0
0
3
0
0
2
1
1
0
1
0
1
0
1
0
2
0
2
2
1
2
3
0
0
0
1
0
1
1
0
1
2
1
0
0
2
0
1
2
0
0
2
0
1
0
1
1
3
1
2
1
1
1
2
3
1
2
1
4
2
3
1
1
0
0
1
0
0
1
0
0
1
0
1
2
2
1
1
0
0
0
1
2
0
1
2
1
0
0
3
0
0
0
1
2
1
1
0
2
1
1
2
0
1
0
0
0
1
2
2
0
2
1
3
4
4
2
2
1
0
1
2
4
2
1
1
1
1
2
1
2
0
2
2
1
3
4
1
2
1
5
3
2
4
1
4
3
4
3
3
5
3
4
7
2
2
0
8
3
6
4
5
12
12
13
8
7
7
12
9
6
18
8
10
20
18
12
10
12
10
14
20
12
11
20
10
13
15
9
17
17
15
16
9
20
12
14
16
12
20
14
19
13
16
20
13
17
12
14
19
17
14
13
11
12
15
12
15
11
10
18
15
12
13
9
19
11
10
11
12
8
6
15
10
4
6
6
6
6
7
2
10
5
3
7
3
1
4
5
3
3
4
1
4
3
2
1
3
1
1
2
4
0
1
0
2
1
0
1
1
1
0
1
1
3
1
1
0
2
0
2
2
2
1
2
1
5
2
1
3
2
3
0
4
1
1
3
1
2
2
2
2
1
2
0
1
1
1
4
2
4
1
5
2
1
4
4
5
3
6
2
5
4
1
4
2
5
5
4
5
5
3
3
3
7
4
6
4
12
5
10
6
9
8
13
5
10
8
2
5
9
13
6
13
6
10
5
15
10
8
14
9
13
9
16
16
12
9
5
12
16
15
13
6
14
12
13
15
9
12
16
15
19
14
11
11
13
13
18
14
17
24
13
11
12
12
16
18
10
13
20
17
9
13
21
17
16
11
19
17
14
16
17
12
15
11
12
16
19
23
24
21
26
22
26
34
27
21
28
32
25
37
43
44
39
29
53
35
42
53
37
51
50
58
56
47
54
50
51
66
56
70
77
58
59
70
71
69
79
83
70
69
81
64
69
66
66
72
90
74
58
79
82
63
80
70
67
66
64
66
62
72
57
61
60
63
56
57
53
41
47
36
39
52
41
41
33
25
27
29
22
26
14
26
26
17
24
8
15
11
12
13
9
12
7
3
3
4
4
4
3
2
3
3
2
0
0
4
0
1
3
2
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
2
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
3
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
2
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
2
0
0
1
0
1
2
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
2
2
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
3
0
0
1
0
0
0
0
0
2
1
0
2
0
1
0
1
0
0
0
3
0
0
0
1
0
0
1
2
2
1
1
1
1
0
0
1
2
1
1
3
0
1
1
1
3
3
0
0
0
1
4
0
0
0
2
0
2
1
1
0
1
0
1
1
0
0
1
1
0
0
0
2
0
0
0
2
1
1
1
0
0
0
0
0
0
0
0
2
2
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
2
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
2
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
3
2
0
0
1
0
0
2
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
2
0
1
0
0
3
1
1
2
1
1
1
0
0
0
0
2
0
1
1
1
0
1
0
2
3
1
1
0
0
0
1
2
1
2
1
0
3
1
0
1
1
1
0
1
1
1
0
2
1
0
1
0
3
0
1
0
0
1
0
1
0
0
0
2
0
2
0
1
1
1
1
1
0
5
0
2
3
2
5
5
3
2
3
3
0
1
1
4
1
2
2
2
2
4
1
4
3
1
3
2
1
2
0
3
0
0
2
4
4
1
4
1
1
1
2
1
3
4
4
1
4
3
4
1
1
5
3
1
2
4
4
3
5
1
4
5
4
3
3
4
8
2
3
5
7
2
3
4
3
2
5
2
4
5
1
2
7
2
3
3
1
0
2
2
1
3
1
8
5
4
2
3
2
1
0
4
3
5
3
5
2
2
1
3
1
3
4
3
2
2
2
3
5
4
6
4
6
2
1
2
7
5
2
1
4
3
6
2
2
1
3
4
2
4
5
2
1
4
2
3
2
5
3
2
5
6
2
1
5
1
5
3
4
5
3
5
7
6
14
8
2
1
5
4
2
2
3
8
0
6
3
4
3
5
5
6
4
8
4
5
4
5
1
5
9
3
3
5
6
4
7
10
3
6
4
4
5
5
2
4
10
9
4
8
3
6
9
7
6
9
8
6
4
9
12
7
5
3
10
11
12
11
9
9
5
7
11
12
15
7
10
10
4
6
7
9
6
9
5
5
7
9
9
16
7
6
7
6
9
3
7
11
9
5
8
13
11
11
9
6
6
9
11
9
9
9
7
10
6
10
9
11
12
8
12
10
8
8
12
7
9
12
8
13
14
9
13
10
11
10
11
14
10
13
14
11
17
15
13
14
13
11
13
17
18
11
13
17
13
11
11
14
16
11
8
12
11
13
13
16
20
19
12
17
15
18
15
18
20
23
12
16
14
15
26
20
18
21
21
19
24
22
23
26
20
21
21
20
24
28
13
17
24
26
20
21
21
19
25
24
22
20
22
27
25
24
20
24
23
21
21
21
20
28
27
22
29
34
29
30
23
30
23
23
26
27
34
28
35
34
41
33
25
51
31
35
32
43
30
42
44
34
40
48
40
40
51
32
58
55
52
49
48
52
53
53
28
44
54
67
46
68
52
45
60
47
48
70
56
57
56
69
60
67
56
70
66
67
68
83
64
63
88
72
83
73
89
83
82
87
104
88
87
91
76
109
82
118
101
97
115
105
113
110
105
116
125
105
117
120
110
127
147
138
139
139
140
132
145
148
153
129
149
127
150
165
160
153
149
190
175
193
154
192
194
164
194
194
231
188
188
221
203
234
216
205
234
219
232
249
240
222
240
270
256
221
257
272
267
269
241
329
267
300
269
321
317
357
346
306
342
331
383
368
378
362
354
423
413
399
441
377
412
424
437
475
444
432
476
509
498
497
504
544
564
549
601
591
546
668
604
637
678
708
682
692
727
765
795
777
852
792
888
914
898
1020
960
968
1099
1141
1159
1229
1205
1298
1337
1421
1521
1557
1666
1586
1830
1813
2010
2075
2146
2303
2499
2588
2775
2974
3188
3332
3582
3808
3850
4314
4423
4789
5054
5309
5690
5960
6357
6664
6982
7354
7805
8046
8315
8938
9273
9612
10049
10648
10799
11083
11544
11539
11799
12288
12599
12908
13067
13215
13309
13500
13863
13893
14019
14094
14377
14542
14729
14748
15085
15313
15507
15402
15761
15817
15992
16165
16362
16449
16395
16396
16446
16292
16531
16072
16013
16044
15692
15512
15098
14500
14216
13616
13017
12618
12007
11528
11275
10375
9886
9432
8798
8219
7650
7353
6696
6214
5663
5431
4917
4471
4138
3768
3446
3162
2811
2502
2348
1991
1811
1567
1385
1193
1039
892
783
668
533
473
410
314
266
194
157
128
110
59
57
48
46
18
22
15
12
5
8
8
3
5
0
3
4
3
3
4
2
1
4
3
3
2
1
4
4
3
2
4
2
4
7
7
3
2
3
7
4
5
6
1
6
4
3
11
7
2
11
14
12
9
10
7
11
8
7
14
13
7
13
11
18
14
11
11
16
9
9
13
8
13
7
8
8
12
13
13
8
8
5
16
11
7
8
8
4
12
5
6
4
3
6
1
1
4
2
1
1
3
1
0
4
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
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
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
1
0
0
2
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
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
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
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
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
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
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
3
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
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
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
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
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
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
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
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
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
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
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
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
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
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
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
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
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
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
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
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
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
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
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
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
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
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
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
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
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
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
1
0
0
0
0
0
0
0
0
0
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
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
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
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
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
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
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
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
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
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
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
2
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
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
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
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
2
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
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
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
2
0
1
1
0
1
0
2
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
2
0
0
0
1
0
0
1
1
1
2
4
2
2
3
1
5
1
4
2
0
1
2
1
1
0
0
1
2
0
4
3
4
1
2
4
0
2
0
3
1
6
2
3
2
0
0
2
2
2
1
3
2
2
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
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
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
3
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
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
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
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
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
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
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
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
2
1
1
0
0
0
0
0
0
0
2
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
2
0
0
0
2
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
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
1
0
0
0
0
0
0
1
0
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
1
0
1
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
2
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
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
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
2
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
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
1
0
0
0
0
0
0
0
0
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
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
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
2
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
2
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
0
2
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
2
0
0
0
3
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
2
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
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
2
1
0
0
0
0
0
0
0
0
0
0
1
2
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
2
2
1
0
0
0
0
0
0
0
2
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
2
0
0
0
1
0
1
1
0
0
1
2
2
0
2
0
0
1
0
0
0
0
0
2
1
0
1
1
1
1
1
1
2
0
0
0
0
4
1
3
1
0
1
2
1
0
0
1
1
1
3
0
2
1
1
2
0
1
2
2
1
0
3
1
2
1
2
3
0
2
0
1
4
3
1
2
3
6
2
3
1
3
0
0
1
3
2
3
2
2
0
4
4
4
4
2
6
2
7
3
3
2
2
4
11
2
10
7
8
4
6
6
12
12
13
11
9
5
15
8
10
15
8
18
18
16
20
16
22
23
15
24
17
30
26
21
26
21
29
22
18
26
36
43
30
26
43
32
24
27
37
28
33
26
44
29
39
22
31
39
45
35
45
56
38
28
38
50
39
26
37
45
33
29
34
21
35
32
30
24
20
29
16
23
27
18
19
20
26
11
13
10
13
16
11
15
12
10
13
8
10
12
6
8
7
6
4
2
5
1
1
1
3
3
0
0
1
1
2
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
2
0
1
1
1
0
0
0
0
0
0
1
0
0
0
2
2
0
0
2
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
2
0
0
1
1
0
1
0
2
0
0
1
0
2
1
1
0
1
0
1
0
0
2
2
0
0
0
4
0
0
2
0
2
0
0
0
1
1
3
0
1
1
2
2
4
1
2
1
0
0
0
4
3
2
0
1
1
2
3
0
0
0
1
2
1
2
0
1
0
2
0
2
1
1
0
0
2
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
2
1
1
1
0
1
0
3
0
0
0
0
0
0
1
2
0
1
0
0
0
0
0
0
1
1
1
1
1
2
2
0
0
2
1
0
1
1
1
0
2
0
1
2
1
1
1
1
0
1
1
5
0
2
2
4
1
2
1
2
1
0
4
0
1
0
4
3
1
1
3
1
2
2
0
1
3
1
1
1
2
2
1
4
1
2
1
1
2
1
3
2
1
5
2
0
4
3
6
1
2
2
2
3
1
5
2
4
8
11
4
6
5
3
2
6
2
3
10
8
8
5
2
9
1
10
10
8
5
10
9
9
7
5
3
7
7
8
5
4
6
10
6
9
6
6
6
7
3
6
3
2
2
3
4
2
5
2
3
5
1
2
1
1
6
1
1
4
2
2
0
0
1
1
2
0
0
0
0
1
0
0
2
0
0
0
0
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
0
0
0
0
2
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
2
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
2
0
1
0
0
0
2
2
0
0
1
0
1
0
0
1
0
0
1
0
3
2
3
1
0
2
0
1
3
1
2
2
2
2
0
2
0
1
2
1
1
2
2
6
2
1
1
2
1
3
3
2
2
0
3
3
3
2
0
3
0
0
2
1
8
2
4
3
0
4
2
3
3
1
2
4
6
4
4
2
1
5
5
0
3
4
4
2
4
3
2
3
5
3
4
2
2
4
7
3
2
5
0
1
2
2
1
3
2
1
3
2
1
2
1
2
3
5
0
1
1
2
2
0
1
3
0
3
0
2
0
1
0
4
1
0
2
0
1
2
1
0
2
2
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
2
1
0
1
0
0
1
1
2
1
1
1
1
2
1
0
0
3
0
0
0
0
2
0
2
1
3
3
1
1
1
0
1
1
0
0
0
1
2
1
2
3
6
3
1
2
1
6
2
1
1
3
3
2
3
3
2
4
0
3
3
2
0
3
3
1
4
1
1
3
3
1
2
2
0
