master / code / degree / Google
Google
Raw
486
1
1
1
1
1
1
1
1
1
1
1
1
1
96
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
2
1
5
1
1
1
3
1
2
1
1
1
8
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
10
1
1
1
2
2
2
1
1
2
1
1
1
1
1
1
1
3
1
1
1
1
1
1
1
4
1
1
1
1
2
7
1
1
5
1
1
2
1
1
1
3
2
1
7
1
1
12
1
5
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
3
2
1
2
1
1
1
4
1
1
1
1
1
1
370
6
1
7
1
1
1
1
1
6
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
4
1
2
1
1
1
5
1
1
1
5
1
2
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
2
4
1
6
4
2
1
1
1
1
2
1
1
4
7
1
1
4
5
1
1
1
1
5
1
1
1
1
2
1
2
364
1
7
1
1
1
1
1
1
1
1
1
1
4
2
1
1
1
5
3
4
2
1
1
1
1
1
1
1
1
2
1
1
1
1
1
347
1
1
1
1
3
1
1
1
1
1
1
3
1
1
1
2
1
1
1
1
1
1
2
1
1
15
4
1
1
1
1
5
1
1
1
1
1
1
1
1
3
3
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
6
1
1
1
1
1
3
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
151
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
12
1
1
1
1
1
1
1
1
1
1
2
3
1
1
1
1
1
1
1
3
1
3
2
1
1
1
2
1
5
1
1
1
1
1
1
4
1
1
1
1
1
1
2
1
1
1
1
12
656
1
4
1
1
4
1
1
1
1
1
1
1
1
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
1
1
1
41
1
1
8
4
8
1
3
1
1
5
1
1
3
1
1
2
1
1
1
2
1
3
1
1
1
1
1
1
2
5
2
1
2
1
3
1
1
10
3
4
1
1
1
1
2
2
3
3
3
3
2
1
2
5
2
4
15
4
2
38
9
1
2
2
2
2
2
2
6
4
4
3
3
3
7
1
9
4
2
3
3
5
2
1
1
2
6
1
2
3
2
1
1
4
3
3
2
2
1
3
3
1
2
4
1
1
1
1
1
2
5
1
11
3
3
5
1
4
1
4
1
6
1
1
1
1
6
2
4
2
2
1
2
4
2
2
87
9
9
9
712
3
3
2
2
12
4
5
9
7
4
5
10
2
13
4
2
6
15
4
11
2
18
4
10
5
7
2
6
2
2
12
3
2
7
13
15
10
8
9
5
6
19
10
9
8
6
6
10
16
9
3
4
3
3
2
5
2
4
7
5
4
7
7
2
7
2
11
4
9
6
4
13
2
5
16
306
1
1
1
4
1
3
1
1
1
1
1
1
1
1
1
4
1
1
3
3
1
1
1
3
1
1
1
1
1
1
1
1
3
3
1
1
4
1
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
1
3
2
1
3
1
1
1
4
1
1
1
1
3
1
10
1
1
1
3
1
1
1
1
1
1
3
3
1
1
2
1
2
1
1
3
3
1
1
3
3
1
1
2
1
1
1
1
1
1
3
4
1
5
1
1
1
1
1
1
1
3
1
1
1
1
3
1
1
4
5
1
1
1
1
3
2
1
3
3
1
1
2
1
1
1
1
3
1
3
3
5
3
1
1
1
1
1
2
1
1
3
3
4
1
1
1
1
1
1
1
1
1
3
1
1
3
1
1
1
3
1
1
1
1
1
1
3
1
1
2
1
3
3
1
2
2
3
3
2
1
1
1
1
1
3
1
1
3
3
1
1
1
1
1
1
3
3
1
1
3
1
16
1
1
3
3
1
3
1
2
3
1
3
1
1
3
1
2
4
3
3
1
1
3
2
1
3
1
1
1
1
1
1
1
1
1
3
1
1
1
2
1
4
3
1
3
1
1
1
3
1
3
1
1
1
5
15
1
1
1
1
1
1
1
1
1
1
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
3
1
2
1
1
5
1
1
6
1
2
2
2
1
2
2
5
1
1
2
9
1
1
1
6
2
1
7
2
1
13
1
7
1
1
5
2
2
7
1
3
1
1
1
1
1
2
2
1
1
2
2
1
3
11
1
3
1
2
2
3
1
1
2
3
2
1
1
1
1
21
12
1
6
2
1
1
1
1
2
1
1
2
3
3
1
1
1
2
1
1
3
1
1
9
4
1
2
2
2
7
2
2
1
2
1
2
6
1
4
2
4
6
3
4
1
1
5
2
2
1
1
1
2
1
3
3
2
11
1
10
2
1
1
4
1
2
1
7
1
1
5
3
2
1
2
1
5
1
1
1
2
1
1
1
1
6
6
3
2
5
3
2
1
1
2
2
3
3
1
1
3
1
3
1
1
3
4
2
1
1
2
1
1
1
1
1
2
1
2
2
1
1
10
2
2
2
1
1
2
3
6
1
15
2
1
1
1
2
2
2
1
2
1
4
1
2
3
5
1
1
1
1
2
2
3
7
1
4
3
1
1
5
1
2
7
2
1
5
1
2
2
3
2
1
2
8
1
6
2
1
4
3
5
1
1
1
7
4
5
1
1
1
1
1
9
1
2
1
6
1
4
230
2
2
1
2
1
1
2
2
1
7
1
11
3
3
3
1
1
3
4
5
2
1
2
1
1
3
1
5
1
3
4
2
2
1
1
1
1
1
4
1
8
3
10
1
1
1
1
2
9
1
1
2
2
1
4
1
2
2
3
1
4
1
1
1
1
2
2
1
1
3
1
4
1
1
3
1
1
5
3
1
6
1
1
1
2
2
1
2
2
1
2
2
10
1
3
1
1
1
2
1
1
1
1
1
1
1
3
1
4
2
1
2
1
7
4
1
1
2
1
3
8
6
1
13
1
1
2
1
1
1
3
7
3
2
1
3
1
1
6
1
3
1
2
5
3
12
2
1
1
4
2
1
2
1
1
5
1
4
5
1
4
3
1
1
1
1
3
1
1
2
2
1
2
8
4
12
1
2
1
1
1
1
3
3
5
2
20
1
9
15
2
2
1
2
8
2
5
1
1
3
3
2
3
2
1
16
1
1
2
6
1
1
2
5
3
2
2
4
2
1
1
4
1
1
2
7
3
2
2
2
6
1
2
1
1
1
6
2
4
3
1
2
5
2
1
1
6
2
4
3
3
2
1
1
5
1
2
1
2
1
1
1
2
2
1
1
2
2
1
1
2
10
1
3
2
2
1
6
2
1
2
1
3
1
3
1
2
1
2
5
2
1
5
5
7
1
1
1
1
6
2
2
11
2
122
3
1
3
1
1
2
1
1
1
1
4
4
1
1
1
4
2
1
3
2
1
2
2
1
5
3
1
2
3
4
3
2
3
6
3
3
1
2
3
2
5
3
8
1
5
3
2
1
1
1
1
1
4
2
1
6
1
3
2
1
1
3
1
2
1
3
3
2
1
6
1
1
1
2
2
6
2
1
1
2
4
2
1
19
1
1
5
1
1
2
3
1
1
2
3
1
1
1
1
1
640
2
1
1
2
1
1
2
5
1
2
2
2
4
2
2
1
2
2
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
3
2
2
2
1
1
1
1
1
2
1
1
2
2
3
1
2
1
1
2
1
1
1
1
1
1
2
1
2
2
1
1
2
1
1
2
6
1
1
2
1
329
1
1
1
1
1
9
1
1
2
1
1
3
3
11
2
3
1
11
1
2
2
1
1
1
1
2
2
2
1
1
1
2
2
9
1
1
1
1
9
1
2
1
2
1
4
1
1
2
1
1
1
1
2
1
1
472
2
1
2
1
2
1
1
1
1
2
1
2
1
7
1
2
1
1
1
1
1
1
2
1
1
1
1
1
1
2
1
1
1
1
1
2
1
3
3
1
1
2
2
3
1
1
1
2
2
2
2
1
1
1
1
1
11
2
1
1
2
930
1
1
2
1
2
1
1
1
1
1
1
3
2
1
1
1
1
7
2
2
1
1
2
1
2
2
1
1
1
2
3
38
3
2
1
1
1
2
1
1
1
1
1
1
2
5
1
1
1
3
2
2
1
3
1
2
1
1
1
5
1
1
1
2
23
1
6
2
2
1
2
1
1
2
2
5
2
2
3
2
2
1
1
2
2
1
1
1
2
2
2
1
2
2
1
1
1
1
1
1
1
2
2
2
1
2
2
1
2
1
1
1
2
2
1
1
1
1
1
1
4
4
2
1
1
2
2
1
2
1
1
105
2
1
1
1
380
1
5
5
1
2
1
2
1
1
1
1
1
2
1
1
1
5
1
1
2
1
2
2
1
1
1
1
2
3
1
1
1
1
2
2
2
1
1
2
2
1
2
1
1
1
2
2
3
1
2
1
1
1
1
1
1
3
1
2
2
2
1
2
1
2
2
2
1
2
2
1
2
5
2
1
1
1
1
1
2
1
1
5
2
1
1
1
1
2
1
1
1
2
1
1
1
2
2
1
1
1
2
3
1
2
2
1
1
1
1
1
1
2
1
1
2
1
1
6
1
1
1
1
2
1
2
2
1
1
1
1
1
1
4
2
1
1
1
1
2
2
1
2
1
1
1
1
2
2
2
1
1
1
2
1
2
1
1
1
1
1
1
2
2
8
3
2
2
5
2
1
1
1
1
3
2
1
2
1
4
2
1
7
1
1
2
1
2
1
1
2
2
1
5
1
1
1
1
2
4
1
2
1
2
5
1
1
1
173
4
1
5
7
3
1
2
1
1
1
3
2
1
1
1
2
1
1
1
2
1
1
6
1
1
1
2
2
1
1
1
7
26
4
1
2
1
1
11
6
2
3
1
1
7
3
3
2
1
3
1
2
3
1
3
11
1
1
1
10
1
3
1
1
1
1
1
1
6
4
1
1
1
2
1
1
6
2761
1
1
10
1
1
1
1
6
2
1
1
1
1
12
5
1
1
3
1
3
2
1
4
10
1
4
2
2
1
1
1
3
1
1
1
1
10
1
1
2
1
186
7
1
1
1
1
4
1
1
1
1
1
1
1
4
1
1
1
1
1
6
1
3
1
2
1
1
1
4
4
10
1
3
1
986
2
3
2
2
3
14
2
2
2
2
2
5
2
2
3
4
2
2
2
2
2
2
3
2
4
9
2
3
1
3
2
2
2
3
2
2
4
2
2
2
2
3
2
3
2
5
2
5
3
2
3
4
9
2
7
2
4
12
2
2
3
2
2
4
4
4
2
2
2
2
1
7
3
2
2
4
2
3
3
2
2
2
72
2
7
2
3
2
2
2
2
2
3
2
3
6
2
6
2
3
2
3
7
1
2
2
2
2
2
1
3
3
2
2
2
3
3
2
2
6
3
4
2
2
2
2
2
3
2
2
2
2
4
2
2
3
2
2
3
3
2
2
3
3
5
3
3
2
7
5
4
2
2
4
2
3
2
8
2
3
2
2
2
2
2
3
2
2
2
2
2
2
7
2
2
3
2
4
2
5
2
3
2
2
2
2
3
3
2
4
3
2
2
7
2
2
2
2
3
5
3
9
3
2
7
2
3
4
2
11
2
2
2
3
2
9
7
3
2
2
5
3
6
2
2
4
4
2
2
2
2
2
2
2
2
3
2
4
5
3
3
2
2
2
4
999
2
2
2
3
16
2
2
2
5
3
15
2
2
10
4
8
2
2
3
2
2
2
2
2
2
6
3
2
2
3
2
2
2
2
3
2
3
2
2
2
3
3
3
2
1
5
2
2
5
2
2
7
2
2
2
3
2
2
2
2
7
2
1
2
2
2
2
2
5
3
3
8
2
8
2
2
2
2
2
3
5
3
3
5
2
4
2
2
3
2
2
2
1
6
4
4
2
2
4
2
2
4
2
2
5
2
2
2
2
2
4
3
10
2
4
10
3
2
4
10
7
2
2
8
2
2
3
2
4
2
2
2
2
2
2
2
2
3
3
2
2
3
3
10
2
3
8
11
2
2
2
4
2
3
2
2
3
3
2
9
2
3
2
14
3
2
3
5
3
2
6
3
3
1
5
2
83
3
2
2
2
4
2
3
2
2
2
2
3
2
2
2
2
2
2
1
4
2
3
2
3
6
2
3
2
2
4
3
2
2
4
2
2
3
3
2
2
3
3
2
2
2
3
2
6
3
2
2
3
2
2
2
2
2
2
2
1
3
2
6
3
2
2
2
4
3
2
2
2
2
2
9
2
2
2
2
9
2
4
6
6
2
2
10
2
3
4
2
2
4
3
3
2
3
4
4
3
2
4
2
5
2
2
4
2
2
2
3
2
2
4
2
2
3
3
2
3
2
2
2
3
2
10
2
2
2
2
2
4
3
3
3
8
2
2
3
6
4
2
3
2
11
5
2
4
8
6
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
4
2
2
1
2
6
4
2
2
3
4
2
5
2
2
2
2
3
2
2
8
2
3
2
2
2
2
2
3
2
2
4
3
2
3
2
7
2
2
4
2
2
3
4
3
2
6
2
2
2
7
4
2
2
2
2
3
2
2
2
3
2
6
2
2
5
2
2
2
2
2
3
9
4
6
2
2
2
2
2
3
3
2
3
3
2
8
2
2
9
2
3
3
2
2
2
3
3
2
4
3
3
2
2
2
2
2
2
4
2
3
2
3
3
2
3
2
4
4
4
2
2
2
3
2
2
4
3
2
2
4
2
2
2
2
2
3
9
2
2
3
2
3
8
3
5
4
2
5
2
3
4
2
3
3
2
3
2
2
3
2
5
2
2
2
2
2
2
2
2
2
2
3
2
2
4
4
6
2
4
2
2
2
2
2
3
3
3
2
3
2
2
2
4
3
6
2
3
3
3
2
4
1
2
2
2
9
2
2
2
2
2
3
3
4
5
3
2
3
2
2
3
4
3
3
2
4
2
3
2
3
6
2
3
7
15
3
2
2
3
2
9
2
2
6
3
2
2
2
2
11
2
8
2
2
2
2
2
2
2
2
2
3
3
2
2
2
271
2
5
3
7
4
5
8
12
5
16
4
4
2
14
2
4
2
3
9
7
4
3
2
13
6
1
1
2
2
6
2
3
3
4
7
15
7
3
2
16
8
11
12
13
5
11
774
2
9
10
3
7
3
8
2
12
6
2
6
5
7
11
2
6
1
4
3
2
3
2
2
2
6
7
7
12
3
1
4
3
5
3
5
7
12
9
8
3
3
10
9
3
4
3
2
9
523
92
4
4
14
3
9
1
2
1
7
4
7
3
4
15
11
1
12
2
6
3
5
5
15
2
5
6
6
4
2
16
5
4
8
1
6
9
2
12
3
5
7
6
6
2
5
9
2
5
1
10
6
7
2
1
5
2
2
2
6
1
4
8
11
4
3
150
7
4
7
6
1
14
9
2
7
3
4
3
8
5
4
32
8
7
7
4
5
9
15
11
6
11
11
3
12
9
3
2
12
8
2
7
13
2
10
10
4
5
1
7
4
2
2
7
5
10
6
3
4
8
2
12
1
8
4
11
4
8
4
2
5
11
3
9
3
5
5
2
5
81
6
317
3
3
3
2
3
2
2
2
4
5
2
2
2
3
2
2
2
4
2
3
2
2
2
8
5
4
2
2
2
2
2
6
3
2
2
2
5
5
4
2
2
2
2
2
3
2
3
2
4
3
6
6
12
2
2
3
1
8
1
2
2
2
3
3
2
2
2
2
3
2
3
2
2
6
2
2
2
10
6
6
2
10
3
2
11
3
2
2
2
4
2
1
2
2
13
2
2
6
2
2
12
6
7
5
3
4
2
2
2
2
3
2
5
2
5
2
2
8
2
6
3
7
3
6
7
479
1
3
3
2
3
2
2
3
3
2
4
5
3
5
5
3
2
7
3
2
6
4
5
2
3
3
1
3
2
3
4
8
2
3
2
2
4
2
12
2
2
2
5
3
2
3
2
2
3
2
5
24
2
2
2
3
3
5
2
4
2
3
3
3
3
3
2
1
2
2
2
5
2
2
2
4
2
2
3
14
6
4
1
2
3
2
5
2
2
3
3
5
2
3
8
6
6
3
4
2
6
7
4
3
3
5
2
35
3
4
2
4
2
3
1
2
2
7
2
3
2
9
15
5
4
2
2
3
3
5
2
5
2
2
1
2
2
2
2
3
2
8
1
2
3
6
3
2
2
3
3
2
2
3
5
2
2
4
2
120
1
1
1
1
2
1
1
1
1
3
2
1
1
1
2
1
1
1
2
1
2
1
2
1
2
4
1
2
1
1
1
3
1
1
1
1
1
1
2
3
3
1
1
4
2
1
1
8
1
1
5
2
2
1
1
1
1
1
2
2
1
1
2
3
4
2
3
6
3
1
1
1
1
1
1
1
1
1
1
1
2
2
1
2
1
2
2
1
3
1
3
1
1
1
1
1
3
1
3
1
2
1
1
1
3
1
2
2
2
1
137
1
4
2
2
252
4
43
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
360
4
5
4
3
4
3
4
3
2
2
5
4
6
7
527
1
2
6
6
2
10
4
7
6
2
6
2
2
2
8
8
4
4
6
4
9
10
3
3
1
2
3
4
5
4
3
10
4
4
11
2
1
4
4
2
1
4
11
2
2
4
3
6
16
1
5
2
6
2
5
2
4
4
7
6
7
3
6
2
3
2
3
5
7
3
6
3
9
13
3
4
5
1
10
3
2
2
4
3
1
9
3
6
4
6
3
3
4
3
3
3
5
2
5
7
2
6
4
12
5
11
3
7
2
3
3
2
4
2
4
2
3
3
4
3
11
11
355
1
2
6
6
3
3
3
3
5
2
5
2
5
2
2
2
5
3
2
3
1
2
3
2
3
2
2
5
3
3
4
5
6
10
2
4
5
7
51
4
2
6
4
3
5
5
3
4
7
9
3
3
6
2
5
8
5
3
3
4
4
2
4
3
7
5
4
4
7
2
2
9
7
6
4
3
3
5
2
4
3
4
6
3
10
5
8
4
1
2
2
2
8
4
4
3
3
6
1
2
3
7
1
1
2
3
5
4
1
3
4
3
2
1
1
1
1
3
2
1
1
4
1
9
1
2
1
1
1
4
5
1
3
2
2
4
4
1
5
1
3
2
4
1
4
2
4
2
2
3
1
1
1
1
1
4
3
3
4
1
3
1
2
3
4
1
2
2
1
4
4
1
2
1
4
2
1
4
1
2
2
2
1
1
3
3
4
2
2
2
1
1
4
1
2
2
9
4
2
3
2
2
5
11
2
2
1
1
2
4
2
1
3
1
3
2
3
3
5
2
2
4
4
2
2
3
3
1
1
5
5
2
3
4
4
1
1
2
2
3
3
2
1
1
2
1
3
1
1
4
1
1
1
5
1
3
3
1
1
11
1
2
2
3
1
5
2
2
5
1
4
3
4
2
2
2
2
1
1
2
7
10
2
4
3
1
3
3
3
1
1
1
3
1
1
1
1
1
4
1
2
1
1
2
1
4
4
1
1
1
5
2
1
4
2
1
1
3
1
3
5
1
1
1
1
2
1
1
3
1
4
1
4
5
5
3
4
2
1
2
2
1
3
3
8
2
2
2
5
2
3
5
3
2
2
1
58
1
11
3
1
1
2
2
1
2
4
1
2
3
5
2
1
1
2
5
2
2
1
3
2
4
4
5
1
4
1
6
2
5
1
5
7
5
2
1
2
6
3
1
1
1
1
1
1
3
4
2
2
6
1
1
2
6
5
1
3
1
3
2
1
1
5
2
2
5
3
2
3
1
1
3
1
1
4
3
1
1
4
1
5
4
1
2
1
1
3
3
3
1
3
1
5
1
2
1
1
1
1
2
2
2
10
3
7
1
3
1
1
2
1
5
3
2
4
1
1
1
1
2
2
3
7
2
1
8
3
1
1
1
2
6
3
172
1
1
2
1
2
1
1
4
1
1
1
1
1
2
1
1
2
1
1
1
2
1
1
1
1
2
1
1
2
3
3
2
2
2
2
1
2
1
3
2
1
2
1
1
1
2
2
1
1
1
1
2
1
1
2
2
1
1
2
1
7
1
2
2
2
2
1
1
2
1
1
2
1
1
2
2
2
3
2
2
2
1
2
1
2
2
2
1
1
1
1
2
2
1
1
2
1
2
1
1
2
1
1
2
1
1
1
1
1
1
1
1
2
2
1
2
3
2
1
1
2
1
2
1
1
2
1
1
1
1
1
1
1
2
1
1
2
1
1
6
1
2
1
2
1
1
2
1
1
1
2
1
1
1
1
1
2
1
2
2
1
2
1
1
1
2
2
2
2
1
1
1
228
1
1
1
1
2
2
1
2
1
1
1
1
1
1
1
1
1
1
3
3
1
1
1
1
1
4
3
1
1
1
1
1
1
2
1
1
1
3
1
1
2
1
1
3
1
1
1
1
2
1
1
1
1
8
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
3
1
1
1
2
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
15
2
1
3
1
1
1
1
1
1
1
1
2
1
1
25
8
6
7
7
7
6
7
7
6
7
6
7
7
8
6
27
620
5
1
5
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
1
1
1
10
1
1
1
1
1
1
1
5
1
1
1
1
1
4
1
1
1
2
1
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
3
1
1
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
7
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
4
1
1
1
1
2
1
1
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
3
1
1
1
1
1
7
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
1
1
1
1
2
1
1
1
1
1
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
1
1
1
1
1
1
1
1
3
1
2
2
2
1
1
2
3
2
2
2
2
2
2
1
1
2
2
2
2
2
4
2
2
2
3
1
2
2
2
2
2
2
2
1
2
1
1
2
2
1
2
2
2
2
2
2
2
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
49
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
5
1
1
2
4
1
1
1
1
1
1
6
2
11
1
1
1
1
1
1
1
1
2
1
3
2
1
1
2
1
1
1
4
4
3
1
1
2
1
1
3
5
1
2
3
1
2
1
1
5
2
1
1
1
6
5
1
3
3
1
3
1
1
1
1
4
1
4
1
5
1
2
3
2
1
4
4
1
2
1
4
3
1
1
1
1
7
1
1
1
4
2
3
1
2
2
1
7
1
4
1
3
1
1
19
1
1
1
1
8
3
2
1
1
1
1
1
3
1
1
1
2
1
8
5
1
1
2
1
3
5
1
1
1
1
37
4
5
1
2
4
2
1
1
1
1
1
3
1
12
1
1
6
2
1
4
1
1
1
3
1
3
1
2
1
2
4
1
4
3
1
1
1
1
1
1
2
1
1
3
1
1
1
4
1
1
1
1
121
2
2
7
5
1
1
2
1
1
2
2
1
1
2
1
2
1
1
4
1
1
5
6
1
1
1
2
6
7
1
3
1
1
1
3
1
2
1
1
1
1
1
111
1
2
1
1
140
1
1
4
3
1
1
1
2
6
3
2
1
1
1
1
3
1
1
2
3
2
11
2
1
1
708
1
2
1
1
1
1
1
1
1
1
1
1
1
1
6
1
1
6
2
1
6
5
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
2
1
1
1
1
3
2
1
1
2
1
8
2
1
2
2
1
4
8
4
1
1
1
1
5
7
1
1
1
1
2
4
1
1
1
1
1
66
2
1
1
1
1
1
3
1
2
1
1
2
1
1
6
5
1
1
1
3
1
7
1
1
4
5
1
1
67
1
1
1
1
1
1
1
5
1
10
1
3
1
3
4
5
1
2
3
1
1
8
1
1
7
1
1
1
2
10
1
1
2
1
1
1
2
2
1
2
1
1
1
1
1
1
5
2
3
2
1
1
1
1
1
1
1
1
1
8
3
1
2
1
1
3
1
3
6
1
4
4
1
1
1
9
9
1
1
6
1
1
2
2
3
1
1
2
1
1
1
1
1
5
1
2
1
1
1
1
1
1
6
2
1
1
3
1
2
7
2
3
2
2
2
1
6
1
1
1
1
1
1
1
1
4
1
2
1
1
1
2
10
2
2
6
1
11
1
1
4
1
1
1
1
1
1
1
1
13
1
1
2
1
2
1
1
2
2
1
1
8
1
3
2
7
1
1
1
1
1
1
2
4
1
1
2
1
1
1
3
1
1
1
2
1
8
1
1
1
4
36
2
1
4
6
1
5
1
1
1
1
2
1
4
1
1
2
4
5
3
1
1
6
2
1
1
3
4
1
1
1
1
1
1
4
1
1
1
3
1
3
1
1
3
1
3
5
1
1
1
482
5
1
1
1
3
1
1
4
1
1
2
2
1
1
1
1
1
1
1
2
1
1
1
1
1
1
2
2
1
5
2
1
2
1
1
1
2
3
1
1
1
1
1
3
1
1
1
1
1
1
5
1
1
1
1
6
1
2
9
1
1
1
1
1
6
1
1
1
3
2
1
1
1
7
1
1
3
1
1
1
1
7
1
1
1
1
3
1
1
1
1
1
3
1
1
1
1
1
1
1
10
4
5
9
6
1
1
5
1
1
2
2
1
1
1
1
1
1
1
3
1
1
2
1
4
2
4
2
2
1
2
2
1
4
1
7
1
86
1
1
2
1
2
1
2
1
3
2
4
1
1
1
6
1
1
1
1
1
1
1
5
1
7
1
1
1
6
1
1
1
1
2
1
1
1
4
1
1
5
1
6
4
1
1
1
1
7
2
1
1
1
4
8
3
1
1
1
2
3
1
7
1
1
3
1
1
3
1
5
1
1
5
1
1
4
1
5
2
1
1
1
1
1
1
1
2
3
8
2
1
1
3
21
4
3
7
4
1
5
5
5
1
5
1
3
5
2
3
1
2
1
1
1
1
1
2
3
1
1
1
2
1
1
4
3
1
1
1
2
1
2
2
1
4
1
1
2
3
1
1
3
1
2
4
1
1
2
1
2
3
1
2
4
1
1
1
1
1
1
3
1
1
2
1
4
2
1
1
4
3
2
2
3
1
1
5
1
1
3
1
1
1
4
2
2
1
1
1
1
2
1
3
1
5
2
9
2
4
3
1
4
1
2
3
2
3
4
1
1
1
3
2
1
1
4
1
2
1
1
6
1
2
2
1
1
2
4
3
1
5
1
5
2
1
3
2
2
1
3
1
3
2
1
1
1
2
307
1
1
1
2
2
1
1
5
1
3
1
2
1
5
2
2
1
2
3
3
1
1
1
1
6
1
1
1
3
1
3
1
7
7
2
1
4
1
1
3
1
1
6
1
1
3
1
2
1
1
1
5
1
1
1
2
6
2
3
2
2
1
1
5
1
1
1
4
1
1
2
1
1
1
1
2
1
1
1
1
3
3
2
1
5
2
1
1
2
4
1
1
1
3
1
2
1
1
1
1
1
2
1
2
2
4
1
5
1
1
1
1
2
4
2
3
1
4
6
1
3
1
2
1
2
1
3
2
1
3
2
1
1
1
1
3
1
3
1
1
1
6
1
5
3
3
1
2
3
1
1
1
1
2
1
1
1
2
1
1
5
3
4
1
1
2
5
1
1
1
1
1
2
2
1
3
6
1
1
2
1
1
1
1
2
2
1
1
1
4
1
1
1
1
1
3
1
2
1
1
2
2
1
3
3
2
5
4
1
3
2
2
3
2
5
1
2
2
3
2
2
1
2
1
1
1
1
1
1
3
2
1
1
1
4
1
2
2
1
2
4
1
4
1
1
2
1
1
1
1
1
2
1
1
2
1
6
1
2
1
1
1
1
4
2
3
1
1
1
2
2
1
1
4
1
2
1
2
1
2
1
1
2
1
1
1
1
2
2
1
5
3
8
1
1
1
1
1
3
2
1
4
1
2
2
1
1
2
1
1
4
3
1
5
1
6
1
1
2
1
1
1
1
3
1
2
2
2
2
1
2
1
2
4
1
1
1
2
2
3
1
1
1
3
2
2
3
1
1
3
1
1
1
1
1
3
2
2
2
45
3
2
1
2
5
3
1
2
1
2
1
1
1
3
1
1
1
1
1
1
2
1
1
1
1
2
3
3
1
1
3
1
1
1
2
3
1
1
1
1
4
1
2
1
1
1
2
785
2
7
2
1
3
2
4
1
4
1
1
104
1
1
1
1
2
1
2
1
1
1
1
1
1
2
1
2
2
1
1
1
1
1
2
1
2
1
1
1
1
1
1
1
1
3
1
1
1
1
1
1
2
1
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
1
2
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
2
3
1
1
1
1
2
2
1
1
1
2
2
2
2
3
3
3
2
2
4
3
4
5
4
2
1
2
3
3
3
3
1
2
4
3
5
7
4
3
3
3
2
3
2
6
5
4
1
2
4
2
4
1
1
1
1
234
10
3
2
7
3
3
4
3
5
2
3
3
2
4
3
1
7
3
5
5
2
6
6
4
232
4
5
9
2
6
3
4
2
2
5
2
2
4
5
1
6
4
3
6
1
2
5
4
4
1
5
5
1
4
1
7
1
11
6
3
7
12
2
2
4
4
1
5
4
4
4
4
4
4
3
2
3
3
3
7
4
3
1
6
666
2
1
1
1
2
1
1
2
1
5
1
2
1
2
1
1
2
1
1
2
1
1
1
1
1
2
1
3
1
2
1
1
2
2
1
1
1
1
3
2
1
1
2
1
1
3
5
2
1
1
3
1
1
1
1
2
1
1
1
2
2
1
2
1
1
3
2
1
3
1
1
1
2
1
3
1
1
1
1
2
1
1
1
1
1
3
1
1
1
1
1
1
1
2
3
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
2
4
3
5
1
1
1
3
3
1
1
1
2
1
1
2
2
1
1
1
1
4
1
1
1
1
1
1
1
1
4
1
1
1
2
1
2
1
1
1
1
2
1
1
3
1
1
1
2
1
3
3
2
3
1
1
3
3
1
1
1
2
1
1
4
1
1
1
1
1
2
2
2
2
3
3
1
1
3
1
2
1
1
1
1
1
1
1
1
1
1
1
5
3
3
1
1
2
1
2
1
1
1
1
1
4
2
2
3
4
1
1
1
1
1
5
1
1
2
1
1
1
1
3
1
3
1
1
1
1
1
1
1
2
1
1
2
1
5
3
1
3
4
1
1
1
3
2
1
3
3
2
1
3
4
1
3
1
1
1
4
1
4
2
2
2
1
3
4
1
3
1
3
1
1
2
1
2
3
2
1
1
1
2
2
3
2
1
5
1
2
3
3
2
1
3
1
1
2
1
1
2
3
1
2
2
1
1
1
1
1
1
3
2
1
1
5
3
3
1
1
1
2
5
1
1
1
1
1
1
2
2
1
1
2
2
5
2
2
1
1
2
2
1
1
5
1
1
3
1
2
1
2
1
1
1
1
1
1
3
1
1
2
3
1
1
1
2
1
1
2
1
1
3
1
2
1
7
1
7
2
1
3
1
1
1
6
1
128
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
22
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
396
1
1
1
1
1
2
1
1
1
1
1
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
10
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
112
1
1
1
1
6
2
1
2
1
1
1
1
1
2
1
2
1
1
1
5
1
1
1
1
2
1
1
1
1
1
1
1
1
1703
1
1
1
1
2
1
1
1
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
5
1
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
1
1
1
1
1
2
1
3
1
1
4
2
2
4
6
3
10
1
2
3
2
1
2
3
2
4
4
2
4
2
3
4
3
3
2
5
4
2
2
5
2
2
1
4
7
3
4
2
2
2
7
1
3
12
2
4
1
2
2
3
4
2
6
3
3
2
4
4
3
3
4
6
1
2
2
2
5
3
3
2
4
2
2
2
6
3
1
7
3
4
2
5
2
1
1
4
2
2
6
1
5
6
3
3
7
2
2
3
9
1
3
2
2
6
2
2
2
5
9
2
2
3
2
2
1
2
3
6
3
3
2
2
5
2
1
1
3
1
1
2
1
3
4
1
2
3
1
2
1
2
1
4
1
2
2
1
3
1
1
1
1
3
1
2
2
1
3
3
1
3
1
4
1
3
4
2
1
1
1
1
3
1
2
1
6
1
1
2
3
3
6
4
3
2
5
1
1
1
3
3
1
2
1
1
3
1
4
1
3
1
4
1
1
4
3
2
4
3
3
1
3
1
1
3
2
3
5
2
3
1
3
2
1
2
8
2
1
2
2
1
2
4
2
1
2
1
4
3
4
2
4
1
1
1
1
2
1
1
1
2
1
1
2
1
1
1
2
3
2
2
3
2
1
3
1
3
2
1
2
1
1
3
3
3
3
3
1
3
3
4
3
3
4
1
3
4
1
1
2
3
1
3
1
4
10
1
3
1
3
3
3
3
3
7
3
3
3
1
1
1
4
1
1
5
5
1
1
1
2
3
1
4
3
1
3
1
2
3
1
2
3
3
1
3
4
1
3
3
1
3
1
3
1
4
1
1
1
2
1
1
1
4
2
1
3
4
2
2
1
4
2
1
1
1
1
2
2
1
3
1
1
1
1
2
4
1
1
1
1
3
2
2
1
1
3
1
1
2
2
6
2
146
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
2
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
33
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
837
2
2
2
2
1
2
2
3
6
4
2
4
2
1
2
2
4
4
3
4
1
4
4
5
4
1
1
3
1
1
4
5
1
3
5
6
2
1
2
2
2
3
1
4
2
5
3
2
2
4
1
4
1
1
4
4
5
1
2
1
5
1
1
3
3
1
1
2
4
3
4
4
1
4
2
4
2
2
2
3
1
2
2
1
2
2
4
2
2
3
4
2
3
1
4
4
3
2
5
1
5
4
6
1
4
4
1
3
5
12
1
3
4
2
5
1
3
1
4
2
4
3
1
2
1
1
4
3
1
4
4
1
3
1
2
2
1
4
3
1
1
4
2
1
4
4
2
2
3
1
3
2
6
1
1
4
4
3
4
6
3
2
2
1
1
4
3
4
3
2
4
4
3
4
4
2
4
1
1
5
1
5
3
2
3
7
3
3
2
2
5
2
4
3
2
1
1
4
3
2
4
1
1
4
2
2
3
1
4
4
1
6
4
3
4
4
5
1
1
2
4
4
4
3
2
1
3
2
3
1
1
3
4
4
3
1
1
2
1
5
2
4
2
4
4
4
2
2
1
1
4
4
4
2
4
2
2
6
302
2
1
2
2
4
4
1
4
2
1
1
1
4
522
3
2
1
1
2
4
4
4
4
5
3
1
4
4
2
1
4
4
4
5
3
1
2
1
2
2
2
5
2
5
4
2
4
3
3
1
1
3
3
2
1
2
4
1
1
2
1
1
4
4
5
2
3
1
4
2
1
1
4
3
3
4
2
1
1
3
7
1
4
4
2
1
1
4
4
4
3
5
1
2
1
1
3
5
3
2
3
3
5
2
1
1
5
1
4
3
4
1
5
6
1
3
4
4
4
2
4
4
1
4
1
1
2
4
1
2
1
2
5
4
2
2
3
1
3
1
4
2
1
5
2
12
3
4
1
2
4
6
2
1
1
1
4
6
3
2
3
1
2
2
1
4
5
4
2
2
3
4
5
3
3
2
1
4
4
3
4
5
1
1
2
4
4
1
4
4
4
1
3
1
4
5
3
4
1
1
1
1
2
1
2
4
3
1
5
115
1
4
1
4
1
4
3
2
5
1
1
3
2
1
4
2
2
2
6
3
2
3
7
2
5
1
1
1
3
4
2
1
1
1
5
5
1
1
2
4
4
1
1
1
1
3
2
1
3
2
2
2
3
1
5
1
4
4
482
2
5
1
712
3
2
5
4
2
2
2
4
4
2
1
1
4
4
3
4
1
3
1
5
1
1
2
2
2
3
2
4
1
2
5
2
4
3
2
2
3
1
1
2
4
7
4
1
2
5
2
4
4
4
2
3
4
1
6
1
4
2
2
2
4
1
1
4
4
2
3
3
4
1
2
3
2
4
1
3
1
1
4
4
2
4
1
4
4
3
1
1
4
2
4
2
3
1
4
3
4
4
4
5
3
3
4
4
4
1
2
4
3
1
4
3
2
6
3
1
3
1
2
4
2
2
4
4
1
2
5
1
1
5
2
4
4
2
1
1
2
4
1
4
3
1
1
2
3
3
1
1
2
2
1
1
1
1
3
1
1
2
1
1
3
5
2
1
2
2
1
6
1
1
1
2
2
1
2
2
1
1
3
2
1
3
1
2
1
1
2
1
5
2
1
1
1
1
2
1
1
1
1
1
1
1
1
2
3
1
3
1
1
1
2
2
3
3
1
1
2
2
1
4
1
1
2
1
1
3
3
1
2
1
3
1
1
2
1
2
2
3
2
2
1
1
4
2
1
4
1
3
1
2
2
1
1
1
2
1
1
4
1
1
1
1
2
1
2
2
1
1
1
2
1
1
2
4
1
4
1
1
2
1
1
2
1
1
1
1
1
1
1
3
1
1
2
2
1
1
1
1
1
1
2
5
1
1
3
1
1
1
1
4
2
5
3
1
4
1
1
2
1
1
3
1
2
1
1
1
1
2
1
1
1
1
1
1
2
2
3
2
3
1
2
2
1
1
1
2
1
1
4
2
2
2
3
3
1
1
1
2
1
1
7
1
1
1
1
1
2
3
3
1
1
1
1
1
1
2
1
3
1
1
2
1
2
2
3
3
1
1
1
1
3
2
1
1
1
3
1
2
2
1
1
1
1
2
1
1
3
2
3
1
2
4
1
1
2
3
1
1
1
1
2
3
3
1
5
1
2
1
3
2
4
1
1
1
1
1
1
2
1
1
1
1
1
3
1
2
1
2
1
2
3
1
2
2
1
3
1
3
2
1
1
3
1
1
1
1
1
1
1
1
3
1
1
2
1
1
1
1
3
2
3
1
1
2
2
1
4
2
1
1
1
1
2
3
1
2
2
3
2
1
2
1
1
5
1
1
1
1
1
1
2
1
2
2
5
2
1
2
1
1
3
3
1
2
1
2
2
2
1
1
1
2
2
1
1
1
4
1
2
1
1
2
3
2
1
2
1
1
1
1
3
1
1
3
3
6
1
1
3
1
1
3
1
1
1
1
2
2
1
2
1
1
1
1
3
4
1
3
1
2
1
2
1
1
2
2
3
1
1
1
1
3
2
1
4
3
3
3
1
2
1
1
1
4
5
1
1
1
3
2
5
1
1
1
1
2
1
1
3
1
1
3
3
1
1
3
1
1
2
1
1
3
6
1
1
1
1
1
1
1
2
2
3
577
2
2
1
1
1
1
2
1
2
2
1
1
1
2
1
1
1
3
1
2
2
2
1
1
5
1
1
1
2
1
1
1
1
1
1
2
1
2
1
1
1
2
1
1
1
1
2
1
2
2
2
1
2
1
2
1
1
2
2
3
1
1
1
1
1
1
2
1
1
2
1
1
1
2
2
2
1
1
3
1
1
3
2
2
1
1
2
1
1
1
1
1
1
1
2
1
1
2
1
1
1
2
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
2
1
3
1
1
1
3
1
1
1
2
2
1
2
1
1
1
1
1
1
1
1
1
2
1
1
1
2
1
1
1
1
2
1
1
4
1
4
1
1
1
4
1
2
2
1
1
2
1
2
1
1
2
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
3
1
1
1
2
1
1
2
3
3
1
3
1
1
2
1
2
1
2
1
2
1
1
1
1
1
1
2
2
1
1
2
1
1
1
1
1
2
3
1
1
3
1
1
1
2
1
1
2
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
2
3
1
1
1
1
3
1
2
3
2
1
1
1
1
1
2
1
1
2
2
2
1
1
1
2
1
1
1
1
2
1
2
2
1
1
2
1
1
1
2
1
2
1
672
1
1
2
1
1
3
1
1
2
5
1
1
1
3
1
1
1
3
1
3
1
1
3
1
1
1
1
1
2
1
1
1
2
1
1
1
2
1
2
1
1
1
1
1
1
3
1
1
1
2
2
1
3
1
1
1
2
1
1
1
1
1
1
1
2
1
1
1
1
2
2
1
1
2
1
1
1
1
1
1
1
2
2
3
1
2
3
1
3
1
1
1
4
1
2
1
1
2
2
2
3
2
1
1
2
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
2
1
2
1
1
1
2
1
1
1
1
2
1
1
1
1
1
2
1
1
1
1
1
2
1
2
1
1
1
2
2
1
1
2
2
1
1
2
1
2
2
1
1
1
3
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
2
3
1
1
1
1
1
2
1
1
1
1
2
2
1
1
1
1
1
1
2
1
1
1
1
2
1
1
1
1
1
1
1
2
3
1
1
1
1
1
1
1
1
1
3
1
1
2
1
1
1
2
1
1
1
2
1
2
1
2
1
1
1
1
1
1
1
1
3
1
2
1
3
1
1
2
1
3
2
1
1
1
1
1
2
1
1
2
1
1
1
2
4
1
1
1
1
1
1
2
1
1
2
1
1
1
2
2
1
1
2
1
1
1
3
2
1
2
1
2
2
64
1
1
1
1
1
1
2
1
2
1
2
1
2
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
2
1
1
1
2
1
2
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
183
1
1
1
2
1
1
1
2
1
1
1
14
3
2
1
1
3
5
1
1
3
1
1
1
1
1
1
1
1
2
1
3
1
1
1
1
1
2
1
3
1
1
3
2
1
1
1
3
1
1
6
1
1
5
1
1
1
3
6
3
2
1
4
1
1
4
1
1
1
2
4
4
2
1
1
1
1
1
3
2
1
2
1
5
1
1
1
1
1
1
1
2
4
1
1
1
1
6
1
1
1
5
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
2
4
4
1
5
1
1
1
1
1
1
1
1
2
2
1
2
1
2
1
5
4
1
1
1
3
1
1
1
3
1
1
4
3
3
5
1
1
1
1
3
1
2
1
1
2
5
1
5
1
1
1
1
2
4
1
1
1
1
3
1
1
5
1
1
1
1
5
2
3
1
1
1
2
1
4
1
2
2
1
2
1
2
1
1
1
1
5
1
1
1
1
4
1
4
1
1
1
1
1
7
1
532
3
1
6
2
1
1
2
2
1
2
1
1
1
1
2
2
1
3
1
2
4
1
1
1
1
1
2
1
5
1
1
1
1
2
98
1
1
2
1
2
1
1
1
5
1
1
1
2
1
5
5
1
4
1
5
1
1
3
1
1
1
1
2
5
1
1
1
1
3
5
1
765
1
1
3
5
1
4
2
1
1
1
4
1
1
2
2
1
1
1
1
3
1
4
1
1
3
2
1
5
1
5
1
1
5
1
1
1
1
1
1
2
3
1
2
1
1
5
5
3
3
2
2
3
1
1
1
1
1
3
1
1
1
2
2
1
2
1
1
5
2
1
1
3
1
1
2
1
1
1
1
1
1
4
4
1
1
3
1
2
3
2
1
2
2
3
2
1
3
1
1
2
1
1
1
3
2
1
1
4
1
1
1
2
1
4
1
1
1
2
1
4
1
1
1
1
2
1
1
1
3
1
1
3
1
5
1
1
6
1
1
3
1
1
1
1
3
1
1
2
1
4
1
1
7
1
2
4
1
2
1
1
1
1
2
1
5
2
1
1
1
1
1
2
4
3
1
1
4
1
1
1
1
1
3
4
2
2
1
1
4
1
2
3
1
2
2
1
1
1
1
1
1
1
2
1
1
3
4
3
1
1
4
2
2
3
3
1
3
3
4
2
4
1
1
1
2
2
3
1
1
1
1
1
3
1
1
2
1
1
4
1
1
1
1
2
1
1
1
1
1
1
5
3
4
2
1
1
67
6
2
1
4
1
1
4
1
6
1
4
1
4
1
1
1
1
2
1
1
5
1
1
4
3
1
5
4
5
962
3
1
1
1
1
1
2
1
1
2
2
1
2
1
1
2
3
2
2
1
1
1
2
1
1
1
1
1
1
2
2
1
1
1
2
1
1
1
1
2
1
1
1
2
1
1
1
1
2
1
1
3
2
1
1
1
1
1
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
2
1
3
2
1
1
2
1
1
1
1
1
1
3
1
1
2
1
3
1
1
2
1
1
1
3
1
1
1
1
1
1
1
1
2
1
1
1
2
2
5
1
1
2
1
1
1
1
1
1
1
2
1
2
1
2
1
1
3
1
2
2
1
1
1
1
1
2
2
2
2
1
1
1
2
1
2
1
2
1
2
1
1
1
2
2
1
1
1
1
1
1
2
1
1
3
1
3
1
2
1
1
1
1
2
2
1
1
1
1
2
3
3
2
2
2
1
1
2
1
1
1
1
1
1
2
1
3
1
2
2
3
1
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
2
5
1
1
1
2
1
1
1
1
1
1
3
1
2
1
1
1
2
2
1
1
1
1
1
1
1
1
3
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
4
3
1
1
1
3
1
3
1
1
2
1
1
1
1
1
3
1
1
1
2
1
1
2
1
1
1
1
1
1
1
1
2
1
2
1
1
2
1
1
1
1
2
1
2
1
2
1
2
3
1
1
1
1
2
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
1
2
1
1
1
2
1
1
1
1
1
1
2
1
3
1
1
2
1
1
1
2
1
1
1
1
1
2
1
1
1
1
1
2
1
2
1
1
3
1
1
1
1
1
1
2
1
2
1
1
1
3
2
1
1
2
1
2
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
1
1
1
1
1
1
1
1
3
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
1
1
1
1
2
1
3
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
2
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
2
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
2
1
1
1
1
2
1
1
2
2
1
1
1
1
1
1
1
2
2
1
1
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
22
2
2
2
4
2
2
1
2
1
2
2
2
1
1
1
1
1
2
1
1
1
2
2
1
1
1
1
1
1
1
1
2
1
1
1
1
1
3
3
1
1
1
3
1
1
1
2
1
1
3
1
3
2
1
3
2
1
1
2
2
1
1
3
1
1
1
3
2
2
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
2
2
2
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
638
1
2
1
1
1
2
2
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
2
3
3
1
2
1
1
1
1
1
1
1
1
1
1
1
1
3
3
3
1
2
3
4
3
4
3
2
3
2
3
3
2
3
3
2
3
2
3
3
3
3
3
3
3
2
2
2
3
3
3
1
3
3
3
2
3
4
3
3
3
3
3
3
3
3
3
4
2
3
3
1
3
4
3
1
3
3
3
3
3
2
3
3
3
3
2
3
3
3
3
3
3
3
3
3
3
2
3
2
3
3
4
3
3
2
2
1
1
2
1
1
1
1
1
1
2
1
2
1
1
2
2
2
1
2
1
2
2
1
1
2
2
1
1
1
1
1
1
2
1
1
1
1
1
2
2
1
2
1
2
1
1
1
1
2
3
1
1
1
1
1
2
2
1
1
2
1
1
1
1
1
2
2
2
1
2
1
1
1
2
2
1
2
2
1
2
1
1
2
1
1
1
1
1
2
3
1
1
1
3
2
2
1
2
2
2
1
1
1
1
2
1
1
2
1
2
1
2
1
2
1
2
1
1
1
2
1
1
2
1
2
1
2
2
2
2
1
1
1
1
1
1
2
1
1
1
2
1
2
2
1
1
2
1
1
1
2
1
2
1
1
1
2
1
2
2
1
2
1
2
2
1
1
1
2
1
2
2
1
1
2
1
1
1
1
2
2
1
2
1
1
2
2
1
1
2
2
1
2
2
1
1
1
2
1
1
1
1
2
1
2
1
1
1
1
1
1
1
1
1
2
2
1
1
1
2
1
1
3
1
1
1
2
1
1
1
1
1
1
2
1
2
1
1
1
2
1
1
1
2
1
1
1
1
2
1
2
2
3
1
1
3
2
1
2
2
1
1
1
1
2
1
2
2
2
2
1
1
1
1
1
2
1
1
2
2
1
1
1
2
1
2
1
1
3
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
2
1
1
1
2
2
1
2
1
1
2
1
2
2
2
1
1
1
2
1
1
1
1
2
1
1
1
2
1
1
1
1
1
2
2
2
2
1
1
1
1
1
1
2
2
2
2
1
2
2
2
2
1
1
2
1
2
2
1
1
2
1
2
2
1
2
2
1
1
1
2
2
1
3
2
3
1
1
1
2
1
1
1
2
1
2
2
1
2
2
1
1
2
1
1
1
2
1
1
1
2
1
1
2
2
2
2
2
2
1
2
2
1
1
1
1
1
1
2
1
1
2
1
1
1
2
1
1
2
1
2
1
1
1
2
2
1
1
2
1
2
1
1
1
1
2
1
1
2
1
1
1
1
1
2
1
2
1
1
1
1
2
1
2
1
2
1
1
1
1
2
1
1
1
1
2
1
1
1
1
1
1
1
2
1
2
1
2
2
1
1
2
2
2
4
2
1
1
1
1
1
2
2
1
1
1
3
2
1
1
1
2
1
1
3
1
1
1
2
2
2
1
2
1
1
2
1
2
2
1
2
1
2
1
2
1
1
2
1
2
1
2
1
3
1
1
1
2
1
1
2
2
1
2
3
1
2
4
1
1
1
1
1
2
1
1
2
1
1
2
1
1
2
1
1
1
1
2
1
2
2
1
1
2
2
2
1
2
1
1
1
1
1
1
1
2
2
2
2
1
1
1
1
1
1
4
2
2
1
1
1
2
1
1
1
3
2
1
2
1
1
2
1
2
1
1
2
2
1
2
1
2
1
2
2
1
2
2
1
2
1
1
2
2
1
1
1
1
2
2
2
2
1
1
1
2
2
1
1
2
2
1
2
2
2
2
1
2
1
2
1
1
1
1
2
1
1
2
1
2
2
1
2
2
2
2
2
2
2
2
2
1
2
2
1
1
2
1
1
1
2
2
1
2
1
2
2
1
2
2
2
1
1
2
1
1
2
1
2
2
1
1
1
1
1
2
1
2
1
2
2
1
1
2
1
1
2
1
1
1
2
1
2
1
2
1
1
1
1
2
1
1
1
2
2
1
2
3
1
1
2
1
2
2
1
2
2
1
2
2
2
1
1
2
1
1
1
1
2
1
1
2
2
2
2
1
1
1
1
1
1
2
1
1
2
1
1
2
1
1
1
1
1
2
1
2
1
1
1
2
1
2
2
1
1
2
2
1
1
2
1
2
1
1
1
2
1
1
1
1
1
1
2
1
2
1
3
1
1
1
2
1
1
1
1
2
2
1
1
1
2
1
1
1
1
1
1
1
1
3
2
2
1
1
1
2
3
2
2
2
2
1
1
2
1
1
2
2
1
1
2
1
2
1
2
1
2
1
1
1
1
2
1
1
1
1
1
1
1
2
2
1
1
1
1
1
2
2
2
2
1
1
1
1
1
2
1
1
2
2
2
2
1
1
1
1
1
1
1
1
1
1
1
1
2
1
2
1
2
2
1
1
2
2
1
2
1
1
1
1
1
1
1
2
1
1
2
1
1
2
1
1
1
2
2
1
2
1
1
2
2
1
2
2
2
1
2
1
1
1
1
1
1
2
1
1
1
2
1
1
1
1
2
1
1
1
1
2
1
1
2
1
1
1
1
1
2
2
1
1
1
1
1
1
2
1
2
1
1
1
1
1
3
1
2
1
1
2
3
1
1
1
2
1
1
2
2
1
1
1
2
2
1
1
1
2
1
2
1
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
2
1
2
2
1
1
2
1
1
2
2
1
2
1
1
2
1
1
2
1
1
1
2
1
1
1
2
2
1
1
1
2
1
1
1
2
1
2
1
1
2
2
2
1
1
2
2
1
1
2
1
2
1
1
1
2
2
1
1
1
1
1
1
2
1
2
1
2
1
2
1
2
1
1
1
1
1
2
1
1
1
1
2
1
1
2
1
2
2
1
1
1
3
1
1
1
1
1
1
1
1
1
2
2
1
2
2
1
1
1
1
2
1
1
1
1
2
1
2
2
1
2
1
2
1
1
1
1
1
1
2
2
2
1
2
1
1
2
2
1
1
2
1
1
1
1
1
1
1
1
2
1
1
1
2
1
1
2
1
2
2
1
2
1
1
2
1
2
1
3
1
2
2
2
1
2
1
2
2
1
1
2
1
1
1
2
2
2
2
1
2
1
2
1
1
1
1
1
2
2
4
1
1
1
1
1
1
1
1
1
1
1
2
1
2
2
1
2
1
1
1
1
2
1
1
1
1
2
1
1
2
1
1
2
2
2
2
2
1
2
1
2
1
2
1
2
1
2
1
2
1
1
2
1
2
2
1
2
1
2
2
1
2
1
1
1
1
1
1
2
1
1
2
1
2
2
2
2
2
1
2
2
1
2
1
1
2
1
2
1
2
2
1
1
1
2
1
2
1
1
1
1
2
1
2
1
1
1
1
1
1
2
1
2
1
2
1
1
1
2
1
1
1
1
2
2
3
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
2
1
1
1
2
2
2
1
2
1
1
1
1
2
1
2
1
1
1
2
1
1
1
1
2
1
2
1
3
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
2
2
1
1
2
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
2
1
1
1
1
1
1
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
1
2
1
1
1
1
1
1
1
1
1
1
2
2
1
2
3
2
1
1
1
1
1
1
1
1
1
1
2
1
2
1
2
1
1
2
1
1
1
1
1
1
2
1
1
1
1
3
1
2
2
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
2
2
1
2
1
1
1
1
1
2
1
1
1
2
1
3
1
1
1
1
2
1
2
2
1
1
2
1
1
2
1
1
1
2
1
1
1
1
1
2
1
1
1
1
1
1
2
1
1
1
1
1
2
1
2
2
1
1
1
2
1
1
1
1
1
2
2
1
1
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
1
1
1
2
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
3
1
2
1
1
1
2
1
1
1
1
1
1
1
2
2
1
2
1
2
2
1
1
1
1
2
1
1
1
1
1
1
1
1
1
2
1
2
1
2
2
2
2
1
1
2
1
1
1
2
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
1
2
1
1
1
1
2
1
1
2
1
1
1
1
1
2
1
2
1
2
2
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
1
1
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
189
1
2
1
2
2
1
1
1
2
2
2
2
2
2
2
2
2
2
2
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
1
2
2
2
2
2
2
2
2
2
2
1
2
2
2
2
2
2
2
2
2
1
2
2
1
2
2
2
2
2
2
2
3
2
2
2
2
2
2
2
2
2
2
2
2
2
1
2
2
1
2
1
2
2
2
2
2
1
2
2
1
2
2
2
1
2
1
2
2
1
2
2
2
2
2
2
2
2
2
2
2
2
2
1
2
2
2
2
2
2
2
2
2
2
2
2
2
1
270
2
1
2
2
2
2
2
2
2
1
2
2
2
2
2
2
1
2
2
2
2
2
2
1
2
2
2
2
1
1
1
1
1
1
1
1
1
1
1
1
3
1
1
1
2
1
2
1
1
1
3
1
1
1
1
1
1
2
2
1
1
1
2
4
1
1
1
1
468
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
160
1
1
2
1
1
1
1
2
1
1
1
1
1
2
1
1
1
1
337
2
2
2
1
3
1
1
3
1
1
1
1
1
1
1
1
2
2
1
1
2
2
2
1
1
1
1
1
1
1
1
1
2
1
2
1
4
1
1
1
1
1
2
1
1
2
1
2
1
3
1
2
3
1
3
1
1
2
1
1
1
1
2
1
2
1
1
2
2
1
1
1
1
1
1
1
1
2
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
15
1
1
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
1
2
1
1
1
1
3
2
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
3
1
1
1
2
1
1
1
1
4
1
1
2
2
2
1
1
2
1
1
1
1
1
2
2
1
1
2
1
1
1
2
1
2
1
1
1
1
2
1
1
1
1
3
1
1
1
2
1
2
1
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
2
2
1
1
1
1
3
1
1
1
1
1
1
1
1
1
1
2
1
3
1
1
1
1
1
1
1
1
4
1
1
2
1
1
1
1
1
1
1
1
1
2
1
1
1
2
1
1
2
1
1
1
1
1
1
1
1
922
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
271
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
2
3
1
1
1
2
2
1
2
1
2
1
2
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
14
3
1
1
1
1
1
1
1
1
1
1
2
1
1
3
1
1
1
1
1
2
3
1
1
1
3
1
2
1
1
2
2
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
1
1
1
1
1
1
2
1
1
1
1
3
1
1
1
1
1
1
1
2
1
1
1
1
1
1
4
1
1
2
1
2
2
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
3
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
2
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
3
1
1
1
1
1
1
2
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
2
1
1
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
75
1
1
1
1
1
1
1
1
2
1
1
1
1
2
1
1
1
1
2
1
1
1
2
3
2
1
1
1
1
2
1
1
1
2
1
1
1
2
1
1
1
2
1
2
1
1
1
2
1
2
1
2
1
1
2
1
1
1
1
2
2
1
1
1
1
2
2
1
1
1
1
1
2
1
2
1
2
1
2
2
2
1
1
1
2
2
2
1
2
2
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
2
1
1
1
2
2
1
2
1
1
2
2
1
1
1
1
1
2
2
1
1
2
1
2
1
2
2
2
1
2
1
2
3
1
1
2
2
1
1
2
1
1
2
1
1
1
2
1
1
1
3
2
2
2
1
1
1
1
1
1
1
2
1
1
2
1
1
1
2
1
2
1
2
2
2
1
3
2
2
1
1
1
2
1
1
2
1
2
1
1
1
1
1
1
1
1
2
1
2
1
1
1
1
1
1
1
1
1
1
2
1
2
1
2
2
2
1
2
2
2
1
1
2
2
1
1
2
1
1
2
3
2
2
1
1
1
1
2
2
1
1
1
3
2
1
2
1
2
1
1
1
2
1
1
1
1
1
2
2
1
1
1
1
2
1
1
1
1
2
1
2
3
2
1
2
2
2
2
1
1
2
1
2
1
1
1
2
1
1
1
1
3
1
1
1
1
1
2
1
1
1
1
1
2
2
1
1
1
1
2
1
1
1
1
1
1
2
1
1
1
2
1
2
1
1
2
1
2
1
1
1
1
1
1
1
1
1
2
1
1
2
3
1
1
1
2
1
1
2
1
2
1
1
2
2
1
1
1
1
1
1
2
2
1
1
1
3
1
1
2
1
1
2
1
2
1
2
1
1
1
1
1
1
2
1
1
2
1
2
2
2
1
1
1
1
1
3
2
1
1
2
1
1
2
1
1
1
1
2
1
1
1
2
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
2
2
2
2
1
2
1
1
1
3
1
2
2
2
1
2
1
1
1
2
2
2
2
2
1
1
2
1
1
1
2
1
1
1
2
1
4
1
1
1
1
1
1
1
3
1
2
2
2
2
2
1
1
1
1
1
2
1
2
1
1
2
1
1
1
2
3
1
1
1
1
1
2
2
2
1
1
3
1
2
1
1
1
2
2
1
2
1
1
1
1
3
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
2
2
1
1
2
2
1
1
1
2
1
1
2
2
2
1
2
1
1
2
1
3
1
1
1
1
5
2
2
1
2
2
1
2
1
1
1
1
1
1
1
1
2
1
1
1
3
1
1
2
1
1
1
1
1
1
1
1
2
1
2
1
1
1
1
2
1
1
1
1
1
2
1
1
2
1
1
2
1
1
3
3
2
2
2
1
1
2
1
2
1
2
1
2
1
2
1
2
1
2
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
2
2
1
1
2
2
1
1
1
2
1
1
2
1
1
1
3
1
1
2
1
1
1
1
1
2
2
1
1
1
2
1
1
1
4
2
1
1
1
3
2
1
1
2
1
3
1
1
1
2
1
3
1
2
1
1
1
1
2
1
2
1
2
2
1
2
2
1
2
2
1
1
1
2
2
1
1
1
1
1
1
2
1
2
2
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
1
1
1
1
2
1
1
1
1
1
1
2
1
1
1
2
1
1
1
1
1
1
2
1
1
2
1
1
2
1
2
2
1
2
2
1
1
1
3
2
1
1
1
1
1
1
2
1
1
1
1
3
1
2
1
1
2
1
3
3
1
3
1
2
2
2
1
2
1
1
3
1
1
2
1
1
2
1
1
1
1
1
1
2
1
2
1
3
1
3
1
2
1
1
1
2
1
1
3
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
2
2
2
2
1
1
1
2
1
1
2
2
1
1
2
1
1
1
1
1
1
1
2
1
1
3
2
2
1
2
1
1
1
2
2
1
1
1
1
1
239
1
2
2
2
1
1
1
1
3
1
1
1
2
2
2
1
2
1
1
1
1
1
1
2
1
1
1
2
2
1
1
1
2
2
1
1
2
1
1
1
1
2
2
2
1
1
2
3
2
1
1
1
2
1
2
1
2
1
1
2
2
1
1
1
1
1
2
2
2
2
1
1
1
1
2
2
1
1
2
2
1
2
3
1
1
1
1
1
1
2
1
1
1
1
1
3
2
1
3
1
2
1
1
2
1
1
1
2
1
2
1
727
1
1
2
1
2
1
1
1
2
1
1
1
1
2
1
1
1
2
2
1
2
1
1
2
1
1
1
1
1
2
2
1
1
1
1
2
1
1
1
2
1
2
1
2
2
1
1
1
1
2
1
1
1
1
1
3
2
2
1
1
1
2
1
1
2
1
2
1
1
2
1
1
1
2
1
1
2
2
1
1
2
1
1
1
1
1
1
1
1
2
1
1
1
1
2
1
2
1
2
2
1
1
1
2
1
1
2
1
1
2
1
1
1
1
2
1
4
1
1
1
1
2
2
2
1
1
1
1
1
1
1
1
1
2
1
2
1
2
1
2
2
1
1
2
2
1
1
1
1
2
2
3
1
2
1
2
2
1
2
1
1
2
1
1
1
1
1
2
2
1
2
2
2
1
1
3
1
1
3
1
1
1
2
1
2
1
1
1
1
1
2
1
1
1
1
2
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
31
1
1
511
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
937
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
2
1
2
1
1
1
1
1
1
1
1
2
1
2
1
1
1
2
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
3
1
1
2
1
1
1
1
1
288
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
259
1
1
1
1
1
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
186
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
305
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
235
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
4
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
1
3
2
1
1
1
2
2
1
2
1
2
2
2
2
2
1
2
1
1
2
2
2
1
1
2
2
1
2
2
2
2
1
1
2
2
2
2
2
1
2
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
9
1
1
1
1
1
1
35
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
499
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
18
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
2
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
36
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
267
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1