0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
6
10
24
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
3
7
8
13
23
37
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
3
4
6
9
15
17
23
36
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
2
6
10
11
14
16
26
35
29
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
3
4
8
10
9
13
17
19
19
33
34
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
2
5
7
9
10
12
15
15
22
36
30
34
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
2
7
8
8
9
11
15
17
23
28
39
42
48
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
3
7
6
6
9
12
12
17
20
23
40
33
38
37
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
2
7
7
7
9
11
12
19
20
24
37
32
41
42
40
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
3
7
7
6
10
11
13
17
15
26
26
35
37
40
39
46
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
3
6
7
5
9
10
14
18
17
25
23
35
32
39
36
40
37
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
3
6
6
4
9
11
13
17
14
24
24
34
36
36
41
42
42
28
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
4
5
6
5
10
12
12
17
14
22
21
26
31
30
39
39
40
33
38
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
2
5
6
4
10
11
8
15
14
20
19
25
28
34
39
39
40
36
35
42
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
3
5
6
4
9
9
9
17
16
19
20
27
25
34
32
37
42
40
40
40
36
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
3
6
3
9
7
9
15
15
16
19
23
23
28
31
39
41
37
33
35
37
42
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
4
6
5
8
8
13
13
14
18
20
23
25
24
35
30
38
42
37
42
33
38
35
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
3
4
6
7
8
10
11
16
17
16
18
19
23
30
27
37
44
35
39
36
45
38
34
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
3
4
7
4
8
9
11
15
14
18
19
22
26
25
29
35
40
32
36
38
35
34
40
47
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
3
5
4
9
7
11
11
16
17
16
17
22
22
27
33
37
38
43
42
38
40
38
35
30
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
4
4
5
8
9
10
10
19
15
18
18
21
22
27
30
36
40
39
37
35
36
34
40
39
30
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
3
3
6
6
7
9
12
19
14
16
18
20
23
25
29
35
35
34
41
38
40
33
40
37
31
40
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
4
6
7
7
7
11
13
14
16
14
16
23
22
31
31
36
39
40
36
36
33
38
39
35
36
43
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
5
4
6
6
9
10
12
19
14
15
20
23
20
32
20
29
31
33
42
40
42
37
42
36
34
40
32
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
3
3
6
6
8
8
14
18
9
16
18
20
19
27
21
38
35
36
37
35
40
32
38
37
36
39
38
38
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
3
5
6
7
7
13
14
11
17
16
18
19
26
23
29
27
35
37
46
40
34
37
42
39
37
39
38
47
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
4
4
6
6
7
8
12
17
16
17
18
18
24
23
26
30
31
35
40
35
31
37
39
37
37
40
39
41
36
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
3
7
4
6
9
16
17
11
11
15
19
22
22
24
31
25
40
36
43
35
38
36
44
40
33
34
40
38
33
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
3
4
6
10
9
11
15
12
14
18
21
18
24
25
29
25
39
31
36
35
39
48
38
35
30
42
40
33
34
36
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
4
3
7
6
5
9
15
13
13
15
17
17
20
21
25
21
31
29
33
43
37
39
30
43
35
41
37
40
39
40
35
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
3
6
5
6
9
15
12
11
13
16
19
17
26
25
25
34
39
37
42
39
36
38
40
33
35
39
39
34
38
36
42
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
5
3
7
8
7
9
13
15
13
16
20
15
24
19
24
28
35
26
40
38
34
37
39
40
37
44
37
36
41
38
34
40
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
2
7
4
4
9
17
13
10
14
20
16
19
22
26
26
28
27
35
38
35
38
41
36
37
39
34
38
42
40
35
40
35
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
3
3
6
7
10
14
12
12
15
18
15
17
24
21
23
27
35
33
40
31
45
35
40
41
38
40
40
40
34
31
35
39
34
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
2
8
6
5
12
10
12
11
16
19
18
20
24
27
29
31
24
33
29
41
33
44
36
39
36
39
34
33
39
37
36
34
33
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
3
5
6
5
11
10
15
10
15
15
14
19
23
19
21
28
28
37
34
42
41
36
41
41
33
42
35
37
40
33
37
40
33
28
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
2
7
6
6
11
13
12
15
16
18
19
20
21
27
30
23
30
29
36
35
30
44
37
36
43
36
36
36
33
37
35
39
35
45
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
2
6
6
4
13
13
13
11
16
16
17
17
19
21
26
23
33
31
37
42
41
42
38
35
34
34
33
38
38
38
35
41
33
38
39
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
3
8
5
8
10
12
11
15
15
16
18
19
23
28
25
29
30
35
36
30
40
45
39
36
45
36
40
39
34
39
42
41
34
35
37
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
2
6
5
5
11
14
11
12
15
14
21
17
22
24
24
24
30
31
28
37
43
36
39
35
41
35
40
37
34
43
37
37
30
33
40
41
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
3
7
5
9
10
8
11
17
15
19
16
21
26
24
24
31
32
33
44
35
38
36
39
40
38
35
33
38
40
35
37
39
33
44
37
32
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
2
6
6
6
12
15
13
15
13
12
20
16
20
18
26
27
28
31
32
35
36
33
40
40
39
38
40
42
36
39
35
33
31
39
32
40
34
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
3
5
5
9
11
9
13
15
13
23
15
21
25
26
22
28
31
29
36
34
41
42
38
36
37
33
36
38
40
35
36
43
34
39
43
34
40
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
2
6
8
5
13
11
13
13
13
16
18
16
22
18
25
28
29
28
32
38
34
32
37
44
35
38
44
39
37
35
33
43
33
42
34
34
35
32
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
4
6
5
10
9
11
13
14
12
23
15
21
21
27
23
26
32
32
35
31
39
40
38
37
40
38
39
38
36
39
44
34
34
32
40
38
35
37
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
3
5
7
5
12
12
11
12
16
19
14
18
22
23
23
28
32
26
31
42
38
34
41
44
36
36
41
32
37
40
37
34
35
39
38
36
32
38
37
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
3
7
5
10
11
11
16
11
12
20
18
21
21
25
26
30
29
28
35
29
32
40
39
39
37
41
34
41
37
36
40
39
33
39
41
37
37
36
45
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
2
4
6
5
12
10
11
13
19
18
14
17
18
23
25
28
25
21
35
40
35
34
45
41
36
45
36
39
33
39
40
34
34
43
35
35
35
37
38
28
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
4
8
5
10
11
11
16
11
14
17
21
19
26
26
23
28
31
37
36
30
33
49
36
39
42
35
41
37
43
37
38
41
41
33
37
36
35
42
38
39
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
4
5
6
12
10
14
11
15
18
20
13
23
19
23
28
24
22
34
35
32
34
36
39
43
39
31
32
39
36
44
36
38
35
35
39
33
39
30
33
31
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
5
7
6
10
11
11
13
13
16
13
18
22
22
26
22
26
29
37
32
30
34
43
42
45
37
32
45
41
40
41
32
39
34
36
38
33
36
33
39
35
28
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
4
6
6
11
10
13
12
15
16
22
14
21
21
22
28
25
27
33
32
35
36
42
41
35
38
37
38
35
38
39
37
38
32
35
39
35
39
34
30
27
34
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
4
5
5
10
11
11
13
11
16
16
19
19
22
25
26
27
28
31
26
34
32
39
38
37
43
32
42
39
40
34
34
42
31
37
38
31
38
32
38
38
37
38
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
2
4
8
7
11
9
12
12
17
16
21
14
22
24
22
25
28
29
35
35
32
38
42
42
41
36
47
37
34
38
48
40
31
38
42
39
41
33
34
34
30
40
39
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
2
6
5
10
10
12
13
12
14
16
16
24
21
18
23
26
24
31
25
36
36
35
38
41
41
37
34
41
43
39
29
36
35
37
35
32
25
36
44
38
41
31
41
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
5
6
6
6
9
10
12
14
17
19
19
17
16
26
26
30
26
31
31
38
29
32
43
43
37
35
42
39
38
39
40
38
37
41
37
35
36
43
39
32
30
33
41
29
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
2
5
7
10
11
12
12
11
13
14
17
22
22
20
23
23
29
28
29
31
39
34
37
42
41
42
35
41
42
33
36
42
36
33
39
37
31
34
36
31
40
32
33
32
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
4
7
6
10
11
12
15
16
20
18
18
16
20
21
29
27
29
33
38
33
29
43
43
37
40
36
39
37
37
39
42
31
39
40
33
32
38
34
32
41
29
38
32
40
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
3
6
5
8
9
12
11
12
15
13
19
22
23
27
23
24
27
27
30
25
33
38
42
41
44
40
37
40
38
34
46
33
40
35
34
36
37
37
40
36
34
35
37
39
31
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
4
7
8
11
12
12
16
14
18
19
19
15
24
19
29
25
27
33
32
38
37
38
36
42
37
34
41
39
37
44
35
33
32
35
35
37
39
39
33
35
30
40
33
33
36
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
6
6
7
9
12
11
13
16
12
17
22
21
18
26
24
29
29
27
27
32
32
40
44
41
36
40
41
39
42
35
37
36
41
39
38
35
35
35
32
35
36
34
37
34
40
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
6
5
6
9
11
8
13
11
17
20
20
13
24
25
23
27
28
29
34
35
30
37
45
43
34
43
44
35
39
39
38
28
35
35
33
35
36
34
35
39
36
40
35
37
41
34
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
2
2
3
7
10
13
15
15
17
15
16
21
21
21
21
24
29
28
33
28
35
40
42
37
39
42
39
37
43
40
35
40
45
45
35
38
35
34
36
34
33
36
33
37
27
26
32
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
4
8
11
9
13
9
13
12
15
18
21
14
24
23
28
30
27
28
29
37
33
34
43
41
39
39
37
33
34
37
40
37
39
34
37
34
38
40
38
40
36
34
37
31
36
41
36
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
4
4
5
10
11
12
13
14
17
15
20
21
23
21
25
27
26
31
32
25
36
41
36
41
39
44
43
43
46
37
40
33
32
38
37
35
37
33
35
30
37
32
34
38
39
34
28
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
3
4
9
11
13
9
15
15
16
16
22
17
21
21
25
25
32
26
31
32
44
36
37
41
39
42
34
27
40
37
41
34
37
37
37
35
41
36
37
34
42
30
40
33
29
32
28
29
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
5
6
7
7
9
12
13
13
16
20
19
19
25
21
29
26
23
35
33
30
28
35
47
38
46
36
35
44
42
37
41
34
40
35
32
36
39
33
37
37
27
33
34
32
37
37
33
39
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
4
7
6
16
12
15
14
12
20
19
17
22
20
22
24
28
21
35
26
36
38
42
34
45
32
36
41
47
37
39
31
39
34
37
40
40
33
39
31
36
36
42
29
34
36
31
34
33
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
6
6
9
11
7
10
11
13
21
18
17
19
22
22
31
25
29
33
28
34
38
37
40
38
39
35
37
40
34
41
39
39
41
36
41
34
39
35
35
41
30
36
28
36
38
35
29
34
36
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
3
6
7
8
9
15
14
14
18
15
19
21
21
24
25
29
26
37
24
34
31
40
41
38
34
41
48
42
46
36
34
34
30
40
36
35
30
35
35
34
41
30
34
34
33
31
37
36
37
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
4
6
8
8
13
15
11
15
16
14
22
20
23
24
26
23
26
34
29
33
38
40
37
38
45
37
42
36
39
34
35
40
41
44
36
35
44
37
37
39
34
28
38
34
35
36
33
36
43
45
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
4
5
8
11
12
11
16
13
19
22
17
22
22
22
26
28
29
26
31
35
36
37
41
34
39
43
40
38
41
39
39
36
34
37
38
42
39
33
37
32
36
36
34
35
39
31
41
36
34
37
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
2
4
9
8
13
9
15
14
18
19
17
22
16
22
24
23
27
33
32
23
39
31
40
36
41
35
40
41
41
37
37
43
38
39
35
38
33
31
42
35
34
28
38
37
38
33
41
31
43
40
34
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
5
6
7
8
9
17
11
13
13
17
15
18
23
23
28
29
30
25
30
37
37
42
32
42
44
38
46
38
40
42
43
35
37
41
40
31
31
40
35
31
39
40
36
35
36
39
30
37
35
37
34
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
5
8
8
13
10
10
11
15
23
17
24
20
24
26
24
28
31
32
31
37
33
35
41
30
34
46
38
37
43
40
33
37
38
34
34
41
40
39
34
40
31
36
37
33
31
31
35
36
34
30
33
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
5
4
7
8
10
15
13
19
16
18
18
20
21
22
22
27
25
28
31
32
38
32
36
39
46
40
39
36
47
42
37
43
37
42
34
40
33
40
29
38
38
36
35
30
39
39
33
37
40
32
36
32
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
4
6
9
12
11
10
14
10
20
17
22
17
24
28
25
26
35
26
32
38
30
35
39
36
38
38
39
42
37
37
36
36
37
35
44
31
39
33
41
35
31
35
36
33
35
31
37
37
30
37
31
34
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
2
4
9
6
10
13
14
15
23
18
15
18
25
22
20
29
26
29
35
32
34
38
41
37
37
39
46
46
39
43
40
43
32
45
31
32
36
41
37
31
38
30
34
30
37
34
37
37
34
38
33
36
37
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
6
5
7
12
10
14
13
13
16
19
23
23
21
26
28
25
34
25
33
34
32
28
38
40
42
45
42
38
43
42
36
37
44
33
42
33
47
33
36
36
28
39
38
34
37
34
31
36
40
37
36
36
31
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
4
9
9
11
13
11
14
17
11
15
19
18
22
21
26
27
30
34
30
31
35
42
36
36
45
32
46
37
41
36
40
36
38
34
38
43
35
36
35
37
37
34
30
37
36
39
42
34
33
32
36
32
33
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
6
4
8
9
9
15
13
15
18
28
23
23
22
26
27
24
28
26
31
31
35
36
40
38
38
35
55
35
40
44
40
40
35
38
41
34
42
31
37
36
34
36
37
36
41
37
35
30
36
35
32
30
27
24
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
4
8
9
12
12
12
11
17
18
12
19
16
24
24
23
31
30
34
34
34
31
40
37
36
44
46
35
40
47
36
39
32
42
38
35
36
37
37
38
34
33
31
33
40
35
36
28
37
35
34
33
32
35
30
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
5
8
6
8
15
12
18
16
19
26
20
22
24
20
27
26
32
30
30
32
36
30
39
42
41
39
43
39
38
42
35
38
41
33
41
49
31
39
30
36
35
41
34
36
33
30
36
31
35
32
37
33
34
43
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
6
4
8
13
12
12
12
16
20
19
13
21
24
23
28
29
31
31
33
30
38
38
35
37
38
42
47
41
45
42
36
35
42
32
38
36
34
38
36
36
37
34
32
40
36
37
34
36
42
35
38
33
32
28
36
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
4
9
6
10
14
13
16
17
15
16
30
17
25
26
27
29
28
30
29
34
32
34
44
35
47
39
33
40
38
41
33
42
34
39
43
40
34
35
31
40
31
33
40
33
35
29
36
42
33
36
34
33
35
41
38
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
5
4
8
12
10
14
12
18
17
24
20
13
24
21
22
26
29
33
32
35
34
35
37
37
42
39
42
49
42
43
35
41
38
47
38
38
38
31
38
37
32
39
40
33
41
34
39
40
34
32
31
29
30
30
35
38
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
5
9
7
11
11
13
12
14
18
15
22
17
27
27
25
31
27
29
35
26
35
35
39
41
47
40
46
41
42
40
36
38
39
33
45
35
33
41
32
37
37
32
31
35
35
40
38
35
29
34
34
34
35
39
40
32
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
4
7
9
8
15
10
18
18
19
20
17
28
21
23
31
29
33
33
30
36
31
38
36
37
35
42
40
39
33
38
39
41
45
44
33
39
33
38
37
38
36
42
37
40
36
28
33
32
39
36
32
35
35
35
32
27
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
6
6
8
13
15
12
15
17
18
21
19
24
20
26
24
29
21
29
31
29
35
41
41
42
43
47
36
44
39
46
35
43
42
39
31
39
30
43
30
42
35
35
33
42
36
34
34
36
33
33
30
34
34
34
39
31
33
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
4
7
8
8
10
14
15
16
20
16
21
19
29
23
29
27
36
32
31
32
36
36
35
44
36
31
50
38
35
36
43
39
42
31
40
31
45
35
37
34
35
38
34
36
33
31
35
33
38
36
40
35
30
37
31
35
36
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
5
8
12
13
16
13
16
18
21
22
20
26
22
26
29
24
35
33
31
36
36
35
39
34
45
45
42
41
44
46
43
45
36
37
39
42
37
33
45
36
33
34
40
35
36
33
40
35
33
32
25
35
39
37
34
29
32
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
7
7
8
9
10
13
14
17
18
15
18
23
23
15
27
28
34
26
28
31
35
40
41
38
44
38
45
39
32
44
37
40
35
35
43
35
42
34
44
34
36
35
38
35
35
35
39
34
39
35
34
42
36
35
29
32
34
34
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
4
8
8
11
17
13
15
20
20
22
23
21
22
36
29
25
30
35
30
33
35
30
40
46
35
39
44
44
46
41
44
37
37
40
39
40
32
42
34
36
32
45
35
40
32
32
37
36
30
34
36
32
31
32
35
30
29
31
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
5
4
8
14
12
10
14
19
17
20
18
19
25
29
18
23
30
32
31
38
37
35
40
37
32
42
44
44
36
45
44
36
43
40
41
36
39
39
31
35
36
38
32
37
33
33
37
37
36
34
36
34
34
35
34
31
31
40
33
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
5
9
9
9
11
15
13
17
19
20
21
25
23
23
40
30
32
30
24
32
36
36
43
41
42
37
40
36
37
43
39
38
37
38
35
40
40
36
41
43
33
39
37
38
34
36
39
31
32
38
31
33
29
34
34
30
38
31
29
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
6
7
11
12
14
16
17
17
20
16
22
20
26
27
16
30
31
32
38
35
35
38
35
40
37
44
43
45
46
42
37
47
39
40
41
36
32
35
38
31
37
33
35
38
36
39
37
37
35
32
39
33
39
32
30
35
30
27
27
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
7
5
8
9
11
15
11
19
19
19
23
21
28
26
25
41
29
29
30
38
36
35
40
39
29
39
44
47
31
47
42
42
39
36
38
35
42
39
45
36
40
35
38
36
31
35
40
28
36
36
35
29
31
31
36
30
32
32
30
33
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
4
9
10
13
15
14
11
19
22
19
22
24
21
25
26
23
30
37
36
29
32
39
41
40
43
46
39
39
48
44
38
43
39
42
39
39
37
42
34
35
29
38
39
41
35
37
39
38
34
30
33
34
34
34
29
35
31
32
35
39
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
5
8
11
10
13
14
23
16
18
20
21
21
28
25
28
18
31
28
34
36
39
39
42
34
42
43
48
41
45
41
37
40
34
39
34
43
38
38
37
41
36
40
35
30
41
35
24
34
31
40
37
37
33
36
31
31
35
32
32
36
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
7
8
7
11
13
15
12
17
21
18
23
23
27
26
24
31
40
35
35
36
35
33
37
32
40
39
39
44
40
50
39
45
40
42
37
44
40
38
36
38
30
40
38
36
40
31
34
38
34
38
35
30
25
36
30
36
38
32
31
37
31
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
4
7
10
11
12
15
20
21
21
20
21
21
27
23
31
25
25
30
34
34
31
43
43
38
38
50
43
43
48
36
35
42
38
36
38
41
38
39
34
37
33
43
34
34
40
33
36
35
37
34
29
35
36
35
30
32
31
32
38
32
36
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
6
7
12
11
16
12
17
21
15
24
21
27
24
26
27
32
47
35
38
31
40
32
31
38
46
33
44
38
43
39
44
45
36
42
43
40
37
36
43
32
48
35
35
42
30
39
33
36
36
36
37
28
41
34
37
34
29
33
33
38
33
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
6
7
12
13
15
15
14
20
21
22
19
22
24
24
27
29
28
21
35
32
34
41
41
41
40
40
46
46
46
43
45
45
32
40
38
45
43
38
36
35
41
31
36
39
35
29
36
38
33
34
32
28
40
28
29
31
35
39
35
35
30
33
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
6
8
9
12
12
15
19
19
14
22
22
27
29
24
27
31
35
23
37
34
36
33
40
36
39
43
43
43
41
42
44
41
40
41
46
37
30
36
39
35
36
43
33
38
33
48
35
42
43
34
33
34
34
35
36
37
32
32
28
29
34
31
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
8
6
8
14
12
16
13
21
19
19
22
23
25
23
29
28
30
30
51
29
27
42
34
35
42
42
40
43
41
40
41
40
37
39
43
37
35
44
39
42
40
38
38
38
36
35
30
38
27
33
30
35
38
28
31
32
29
35
28
37
38
32
33
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
4
8
11
10
10
17
17
18
19
24
22
27
27
24
26
33
32
36
27
35
35
33
47
41
40
43
44
49
38
50
44
38
37
40
39
42
42
39
37
34
35
44
31
45
37
40
36
34
36
38
36
33
28
34
36
35
35
28
33
36
27
35
35
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
5
8
11
12
17
13
18
21
21
19
20
23
25
26
31
32
30
38
47
30
42
36
31
37
40
41
46
35
49
45
43
35
43
42
39
38
38
36
44
36
39
30
40
31
33
32
39
34
33
29
33
31
38
38
32
29
35
30
41
31
35
31
33
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
7
7
10
13
13
16
16
21
17
19
23
28
26
24
29
30
29
36
30
21
36
40
35
44
39
43
45
39
48
46
37
43
38
42
40
46
39
44
38
33
41
34
41
40
37
35
38
30
34
35
29
36
34
33
32
35
38
28
42
31
33
34
34
30
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
6
9
8
10
13
16
16
22
20
22
23
24
28
21
31
32
33
38
37
47
35
35
40
41
44
45
42
43
42
42
45
34
54
43
45
38
45
36
39
39
36
47
37
34
35
36
33
37
30
33
41
28
40
37
33
35
31
37
29
31
32
37
29
29
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
6
8
14
14
16
15
18
15
22
22
23
23
23
33
30
28
38
29
36
23
40
32
47
33
41
42
40
48
47
42
43
46
36
41
42
42
35
38
38
40
39
33
35
35
33
38
35
28
39
36
30
38
32
31
39
33
28
32
35
31
36
24
34
31
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
8
6
9
11
12
16
14
24
22
20
26
27
28
21
29
29
34
33
37
29
27
37
38
36
40
41
39
48
45
37
41
42
42
44
39
43
41
39
37
43
37
38
39
41
37
36
29
36
38
37
35
32
40
32
32
30
26
37
37
31
38
28
36
29
31
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
5
8
9
14
14
17
19
17
22
23
19
26
24
31
30
31
34
33
34
35
50
37
45
42
46
44
40
48
43
49
46
40
41
39
45
40
37
44
39
38
35
38
34
32
30
40
37
33
39
33
35
36
29
35
38
26
35
36
31
33
30
33
28
26
23
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
6
7
11
16
12
17
13
19
21
17
24
26
25
25
26
34
32
34
34
34
37
27
37
44
32
39
38
49
41
37
49
44
43
39
43
42
37
39
33
44
34
36
37
39
33
39
32
38
38
34
33
34
35
32
33
25
38
37
31
29
35
34
27
31
34
37
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
6
7
8
13
14
16
20
19
20
21
21
26
23
26
36
24
32
31
34
31
34
54
41
38
41
43
44
39
44
55
35
41
43
44
37
43
41
43
40
32
37
45
35
38
39
39
37
34
30
35
42
31
34
38
32
37
34
32
33
35
30
23
35
31
29
40
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
6
7
13
10
14
16
16
23
22
28
24
25
28
30
31
36
32
37
38
39
36
27
41
33
43
46
46
49
44
44
49
45
40
44
57
39
41
38
42
40
36
38
42
32
40
31
30
34
44
38
25
34
33
29
28
34
36
31
31
35
29
37
30
31
36
36
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
6
8
10
13
15
17
18
20
22
20
23
29
22
24
32
28
30
37
33
29
36
34
24
39
37
44
38
41
42
46
43
44
41
47
44
32
40
38
32
33
40
42
36
40
37
29
40
37
36
37
31
34
36
34
32
41
35
25
31
33
30
32
33
33
31
37
25
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
7
7
11
12
12
16
19
21
20
23
20
22
30
25
32
29
32
33
42
37
34
42
61
35
45
44
38
46
48
46
43
45
45
41
40
47
39
37
42
46
40
37
42
28
37
40
29
40
44
33
32
36
32
27
34
32
30
36
33
34
32
34
29
31
39
29
33
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
6
9
12
13
15
16
15
21
20
25
27
23
25
32
32
32
36
37
28
36
35
40
27
39
45
41
53
45
47
42
46
44
41
42
41
34
39
43
42
34
29
40
30
37
31
35
40
31
34
26
37
32
34
37
38
35
30
30
34
30
30
33
30
33
29
37
38
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
6
7
9
16
13
20
16
20
22
22
21
24
27
26
35
27
35
34
37
38
36
36
40
55
41
40
39
41
43
42
49
45
40
44
42
46
38
40
36
40
44
47
40
34
34
39
33
37
43
31
40
28
31
34
30
35
27
32
37
32
31
34
29
37
33
36
27
27
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
7
8
12
11
16
16
20
22
23
24
28
23
30
33
30
29
32
37
35
37
35
41
36
25
45
46
45
43
51
50
43
46
48
44
40
38
49
43
42
43
33
42
31
37
38
38
37
39
36
29
32
35
43
39
37
28
30
35
30
29
33
38
34
29
32
30
38
33
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
7
10
13
13
13
19
20
22
22
25
20
29
29
33
30
35
34
34
36
31
34
41
40
30
42
34
51
49
49
41
44
42
37
41
44
42
40
40
43
36
39
33
38
39
37
32
43
34
29
40
33
37
35
24
36
26
37
36
29
38
34
25
30
32
35
31
28
27
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
7
7
9
15
15
19
18
23
24
21
26
31
24
26
29
28
31
40
37
33
36
44
35
38
60
44
49
41
48
40
53
47
43
46
42
46
41
44
42
44
35
37
35
37
36
36
38
34
39
34
33
32
38
28
36
29
42
33
26
39
32
31
35
35
34
34
34
30
36
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
8
8
12
12
14
22
17
21
21
25
20
22
33
32
29
37
35
34
38
35
39
33
42
44
28
41
48
49
44
48
43
48
41
46
44
38
40
38
38
32
33
45
41
36
32
37
43
35
32
40
33
39
35
31
37
30
27
30
38
34
31
33
34
32
38
28
34
36
36
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
7
10
14
16
12
16
20
24
22
28
25
26
29
30
30
28
37
36
33
34
36
45
38
41
62
41
47
47
47
49
47
37
45
40
42
42
45
38
42
32
47
34
30
34
44
38
32
36
33
33
30
36
27
34
29
36
38
37
35
33
35
32
27
35
29
38
29
29
24
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
7
8
10
13
12
27
18
20
20
24
18
30
33
30
32
32
34
40
37
36
39
37
33
45
42
27
55
43
40
44
50
41
52
44
43
46
43
41
37
32
44
43
33
35
40
34
35
35
35
38
34
40
35
32
34
35
33
36
35
31
28
32
32
38
32
29
24
28
26
30
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
8
8
12
16
16
19
17
26
22
25
29
27
29
28
30
33
39
34
35
33
38
40
44
38
40
69
44
45
48
44
43
45
45
48
41
37
41
39
46
42
43
34
38
42
38
36
38
38
37
31
32
36
30
36
34
38
32
29
33
37
33
27
33
32
28
34
31
32
33
23
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
8
10
16
14
16
14
21
21
24
23
27
28
30
33
32
30
36
35
38
37
37
39
38
44
45
29
45
43
49
59
41
46
40
44
50
52
42
42
35
38
37
36
36
36
37
34
33
40
34
36
35
31
32
36
34
28
38
36
31
20
36
33
30
29
33
27
28
29
28
29
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
8
9
11
15
14
22
22
24
24
24
26
26
30
28
31
32
40
36
38
38
38
41
44
46
42
47
33
37
45
46
43
50
49
48
37
44
32
45
34
43
46
37
33
37
39
35
40
44
34
33
34
38
33
38
34
36
32
26
33
29
40
26
30
32
37
32
31
38
30
26
33
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
8
8
13
15
16
20
16
23
24
25
27
28
28
31
31
33
37
39
36
31
39
34
37
39
47
40
59
47
47
45
38
44
44
40
47
39
46
37
45
30
35
39
37
41
35
40
42
38
35
34
32
32
37
27
35
30
40
39
29
31
32
30
36
36
28
28
32
26
31
31
31
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
6
9
11
14
15
20
17
24
23
23
28
28
32
30
31
36
35
38
33
37
36
38
42
46
50
41
46
38
49
56
54
57
50
43
48
42
40
44
42
36
46
38
34
39
35
37
36
36
34
33
37
40
34
31
41
31
32
25
39
35
34
33
40
32
32
33
35
31
30
26
31
40
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
9
9
10
16
13
20
20
25
24
25
27
29
25
28
32
32
37
37
39
32
36
36
41
43
40
42
49
57
46
43
42
44
45
39
36
47
48
40
33
44
44
40
34
37
40
42
41
38
36
33
31
30
34
35
30
30
42
39
26
31
38
28
28
34
24
33
29
29
32
32
37
30
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
7
9
14
15
19
20
20
22
28
24
26
29
34
33
37
33
40
34
39
40
46
41
45
48
43
44
41
37
49
47
55
44
42
48
46
44
40
40
46
38
36
31
44
40
39
36
37
38
29
36
37
35
33
39
38
37
30
32
34
30
27
38
29
30
36
32
33
31
25
36
33
30
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
6
8
11
17
15
17
20
23
21
20
27
26
27
29
36
30
35
33
38
39
32
36
43
49
38
37
50
48
31
53
46
43
55
42
45
43
38
42
38
40
42
40
42
35
38
38
41
40
26
35
34
38
38
35
33
28
37
31
35
29
36
33
26
39
29
33
28
26
28
32
26
28
30
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
10
9
12
16
17
22
20
22
27
27
32
27
31
31
31
34
38
39
35
32
41
36
47
40
41
49
45
47
71
44
54
49
40
44
45
48
45
38
41
40
40
36
33
40
42
42
38
33
41
40
35
31
33
36
31
38
32
29
28
35
34
31
33
27
33
28
28
28
32
36
35
33
27
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
7
12
14
17
18
21
20
27
27
26
27
31
29
34
36
36
36
36
39
38
44
44
45
42
40
48
45
44
32
46
52
43
36
46
43
45
44
38
42
44
33
31
41
41
39
36
38
34
35
30
36
34
33
32
31
33
29
41
33
27
24
32
33
33
34
31
35
37
32
29
36
30
36
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
6
11
9
16
15
17
20
22
21
24
27
29
32
35
35
33
38
35
39
42
38
38
48
42
38
46
45
49
47
75
52
45
47
48
47
48
40
37
44
44
34
39
36
42
42
44
39
38
40
32
39
36
41
32
35
38
33
36
26
31
38
37
31
36
34
30
31
30
28
30
33
26
29
32
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
10
8
12
18
14
24
20
26
34
25
30
30
29
33
33
33
33
43
37
39
37
43
42
41
46
44
44
46
49
30
50
43
41
52
46
46
50
41
42
38
37
40
46
41
42
34
39
31
31
40
32
33
26
39
33
34
28
35
34
36
36
30
35
32
32
30
26
33
29
35
32
32
36
33
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
8
10
15
16
21
23
25
23
22
26
30
30
36
34
37
38
42
39
36
35
37
46
44
43
40
50
53
46
53
64
51
38
52
38
48
45
39
45
43
38
41
38
44
48
38
40
33
41
38
31
34
38
34
33
36
29
41
29
35
33
30
37
36
28
27
27
37
30
33
31
31
34
32
32
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
6
10
12
19
18
19
19
22
28
24
31
31
30
36
34
32
38
33
36
43
33
51
39
43
40
47
48
47
48
48
39
41
53
44
58
46
41
35
43
39
40
41
47
48
34
35
32
39
29
32
30
34
31
43
35
33
40
34
34
28
25
42
31
31
31
29
35
31
30
34
31
31
27
28
22
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
10
11
12
16
14
23
22
23
28
28
31
30
27
30
34
35
34
44
35
40
46
38
44
43
44
46
47
47
44
44
34
43
51
48
46
43
43
49
37
39
40
47
42
35
44
37
39
34
31
35
40
43
35
33
33
34
33
26
33
37
43
25
30
25
26
32
31
29
33
30
30
27
31
27
27
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
9
10
15
19
21
21
25
26
27
24
31
30
40
35
35
38
39
40
42
37
43
46
43
40
44
49
53
43
52
47
66
55
54
44
37
41
36
39
48
44
42
37
36
37
34
37
35
28
41
30
39
32
37
32
32
37
30
32
31
36
30
27
36
32
37
34
26
31
29
33
29
31
26
25
29
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
7
12
11
20
16
19
24
20
30
28
34
33
30
35
30
36
36
40
37
39
38
40
42
45
42
46
50
45
44
43
50
36
48
38
50
47
41
48
46
38
41
45
41
45
43
35
33
34
43
36
45
36
37
36
29
38
29
29
38
39
30
30
37
23
31
28
25
34
27
32
26
28
27
31
31
28
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
11
11
13
20
19
25
25
27
30
25
32
28
33
33
35
37
39
43
36
46
44
45
50
46
46
46
46
47
47
51
53
67
48
44
50
48
45
42
42
46
43
34
43
39
39
31
40
35
34
37
32
36
30
28
39
33
35
37
34
32
31
27
27
31
34
29
30
27
37
33
31
32
34
29
30
32
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
10
10
18
17
20
21
19
28
26
29
33
33
40
36
41
40
44
39
44
35
39
45
37
41
46
50
49
40
54
53
50
38
49
48
42
40
47
46
38
38
37
44
39
39
28
40
37
42
39
37
40
32
33
41
37
33
35
36
33
27
27
32
28
35
26
32
37
33
28
30
28
33
30
33
32
36
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
6
11
12
18
16
20
27
25
31
27
31
33
30
35
32
40
38
34
39
42
42
45
40
46
46
43
54
48
44
46
48
47
33
40
58
48
51
44
45
41
43
45
45
41
38
36
39
36
40
38
35
34
31
39
32
33
31
27
29
29
31
28
37
36
28
35
36
26
34
31
31
32
25
30
22
26
28
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
10
13
14
22
21
25
22
30
30
29
36
27
34
35
37
39
36
41
40
36
44
45
47
47
43
55
45
47
54
54
52
50
70
56
44
44
41
44
37
48
41
44
37
34
29
39
41
44
34
30
34
37
38
34
37
32
34
38
35
34
25
43
29
33
34
29
28
35
28
29
28
30
34
26
35
42
36
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
12
10
17
19
21
23
25
26
27
29
33
34
40
31
37
39
41
42
42
44
38
44
46
39
42
45
46
44
44
47
53
50
43
45
46
45
37
45
43
40
42
40
39
43
41
34
37
36
34
38
38
33
37
38
31
31
33
32
31
28
44
30
30
32
32
35
35
29
31
30
36
34
30
38
38
34
33
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
7
12
11
22
18
23
27
29
31
31
32
32
35
39
33
41
32
42
40
40
42
43
48
45
44
52
54
50
47
56
54
47
54
65
52
40
41
51
41
46
45
42
40
42
36
38
50
39
31
34
35
39
32
34
30
35
33
35
31
34
30
31
29
40
28
33
32
24
30
34
36
27
31
30
28
30
22
26
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
10
12
15
22
21
25
25
26
31
29
36
31
34
34
46
39
35
35
41
40
37
48
41
42
49
52
39
49
45
52
49
52
50
28
49
45
47
47
43
41
40
36
36
37
33
38
34
36
39
39
42
30
36
36
38
34
35
32
35
29
40
32
38
28
30
27
28
34
38
33
28
36
31
36
33
31
37
33
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
13
12
19
19
21
25
28
30
31
29
36
36
41
33
39
39
46
47
44
47
52
49
44
51
47
41
51
40
53
53
54
52
53
35
42
49
48
39
47
47
38
51
42
36
41
40
48
34
33
32
34
32
40
33
37
27
35
39
33
36
33
32
28
28
33
40
31
34
28
30
33
33
34
26
32
28
28
31
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
7
13
14
25
20
23
29
28
30
29
35
33
35
36
38
36
39
37
43
38
39
38
37
43
44
48
55
52
52
57
51
52
55
48
70
42
48
41
49
43
37
46
36
37
41
39
42
34
36
41
44
34
41
34
43
26
46
35
29
33
33
31
33
29
35
32
25
32
33
32
28
32
27
22
29
24
32
27
27
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
10
13
15
21
22
25
24
24
34
31
34
36
33
35
43
38
40
47
43
44
46
48
54
51
38
49
45
45
51
51
47
53
43
40
39
47
46
44
44
39
43
41
35
41
39
43
43
25
41
33
36
32
39
33
31
37
26
34
35
32
34
29
30
40
34
28
30
35
30
30
34
35
26
33
33
37
30
33
27
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
14
13
20
20
23
31
29
32
34
34
37
36
45
40
36
41
38
48
39
46
40
45
40
46
48
56
56
54
53
52
56
47
52
54
57
53
45
45
38
45
41
42
44
42
39
44
37
40
39
44
31
43
33
41
26
37
39
34
33
34
27
38
34
28
28
32
34
33
31
30
30
24
35
34
36
25
29
26
34
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
8
16
15
24
21
22
26
26
35
30
36
39
36
34
38
40
46
45
44
43
41
44
49
47
44
55
46
48
43
46
47
51
54
48
47
35
46
41
46
46
38
42
38
43
39
39
35
32
50
34
35
38
33
36
30
41
35
30
30
27
30
38
31
35
31
34
33
35
27
28
29
36
30
29
29
18
33
28
30
26
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
11
14
17
22
22
30
29
28
35
29
37
35
36
41
40
44
33
42
41
43
48
50
45
49
50
52
49
50
53
54
54
50
40
52
51
72
42
48
45
45
48
45
45
40
39
47
42
43
30
37
32
36
37
38
33
37
28
32
36
33
38
38
32
29
31
30
37
27
31
29
39
21
31
30
27
38
29
30
31
26
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
15
12
18
21
22
30
30
35
34
37
37
35
39
36
39
35
44
49
38
46
41
50
48
45
51
49
47
50
49
57
50
54
56
49
44
30
41
46
54
40
41
39
39
38
42
45
36
36
40
37
39
38
36
34
34
29
35
37
31
42
33
25
31
31
34
34
29
34
30
34
26
33
28
32
34
29
31
31
23
27
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
7
16
17
26
26
27
28
28
36
31
36
39
38
40
41
40
45
45
38
42
45
44
45
47
48
44
51
49
43
50
49
56
46
54
53
45
32
49
54
33
46
39
46
44
43
46
31
38
38
32
36
32
38
39
29
36
36
38
32
34
29
36
37
35
30
32
30
28
29
28
34
29
29
32
28
26
29
23
20
28
23
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
11
14
18
26
24
33
31
29
36
34
41
37
41
39
41
44
43
42
49
39
46
54
50
44
55
58
48
49
49
57
45
49
56
55
43
48
68
58
45
42
45
45
40
36
39
36
42
40
35
36
42
45
37
32
40
37
32
30
35
37
34
28
27
29
38
31
28
28
27
36
31
27
30
30
29
34
24
27
30
28
36
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
18
17
21
22
25
31
30
37
35
36
40
39
35
41
38
46
42
53
44
54
51
49
44
53
43
45
50
57
49
48
58
54
49
45
49
57
36
48
37
48
43
46
39
41
42
32
37
37
43
44
38
32
37
35
33
34
41
34
31
35
37
28
39
32
28
27
29
32
35
31
25
28
30
26
33
24
31
33
34
37
41
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
8
17
16
25
29
26
31
29
36
34
39
40
38
44
37
44
37
45
39
39
52
42
44
47
50
54
55
51
43
56
58
52
50
56
56
52
43
68
43
41
47
39
39
46
37
41
49
39
37
34
41
32
40
29
34
38
31
29
39
41
28
25
38
25
35
26
29
35
29
34
31
32
38
29
34
29
29
34
33
30
31
27
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
12
17
20
28
23
32
32
33
38
38
41
36
36
41
46
44
47
45
46
49
47
46
52
49
52
44
46
51
51
50
48
52
58
58
46
48
51
39
43
50
40
49
45
36
44
36
40
39
40
38
42
34
36
44
39
33
41
37
30
28
30
35
34
34
27
30
37
35
34
32
29
26
26
36
30
31
36
30
27
35
31
35
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
20
18
22
27
28
32
32
38
38
36
38
36
42
38
36
45
45
48
48
50
47
53
46
52
42
53
53
42
51
58
55
52
54
48
50
49
50
32
39
46
42
39
39
42
46
47
38
37
41
39
23
44
32
29
34
35
30
31
34
30
38
35
27
29
27
41
34
29
39
31
24
35
33
30
31
26
25
29
37
28
35
27
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
8
18
18
28
30
28
34
30
41
38
44
42
41
46
40
45
47
47
51
45
48
45
48
50
50
50
55
45
54
58
56
52
66
56
48
47
50
48
58
45
41
43
43
41
44
42
44
37
42
33
40
45
36
43
34
32
37
32
34
34
36
32
31
32
30
37
31
31
32
34
23
35
32
31
26
29
36
36
36
25
35
29
33
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
15
21
21
30
24
32
36
35
38
38
39
39
42
34
47
50
43
42
43
48
48
43
51
48
50
52
46
54
57
53
54
57
51
51
46
54
55
52
36
50
43
48
46
40
42
39
35
41
37
42
32
32
36
29
40
40
30
34
33
29
35
34
35
30
35
35
31
30
28
22
29
33
27
30
36
30
26
27
26
31
25
26
26
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
20
18
23
29
27
38
39
39
42
41
41
41
40
45
42
43
45
53
46
48
50
48
49
49
45
49
52
53
52
53
54
57
57
51
56
52
45
40
61
45
47
45
38
47
43
48
37
39
38
38
45
42
36
38
33
29
32
37
34
35
38
32
22
29
33
31
32
31
35
29
35
30
33
30
29
33
36
32
28
29
34
33
29
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
8
21
21
32
30
33
34
32
45
37
39
41
40
45
45
50
52
48
45
45
47
46
52
45
49
53
57
53
53
55
64
52
57
47
53
53
51
46
46
34
45
41
44
45
41
41
38
48
37
38
36
30
33
36
37
32
37
39
33
29
38
25
28
34
40
34
33
30
28
29
32
36
29
30
33
27
28
23
27
31
35
27
30
31
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
17
24
20
31
27
35
43
39
45
40
41
41
42
43
46
45
48
46
49
48
52
46
51
50
53
51
53
54
51
55
43
53
57
61
48
52
48
54
48
69
48
53
41
44
47
47
41
34
46
39
36
40
40
33
29
35
32
30
29
42
35
30
29
39
31
34
31
27
34
28
27
26
34
31
29
34
33
37
30
32
28
36
28
33
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
22
21
29
32
33
42
36
37
41
41
39
44
44
46
46
49
41
48
44
51
50
52
60
51
57
53
49
52
55
55
54
61
56
52
56
47
50
45
47
27
37
40
44
44
46
37
41
37
29
37
37
34
34
38
38
36
34
35
38
33
25
34
36
30
35
28
28
37
31
36
36
30
28
32
31
27
29
22
32
28
34
26
29
27
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
9
26
21
33
31
34
39
36
43
38
37
51
42
48
47
53
49
47
54
51
50
49
54
48
57
47
56
55
51
62
59
63
58
51
48
50
58
46
48
44
32
52
51
43
38
34
44
32
35
39
36
38
41
33
29
32
32
33
31
36
32
36
36
37
32
28
29
33
32
33
28
32
34
31
29
29
36
32
33
30
35
28
28
33
25
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
19
26
26
32
34
41
42
42
49
43
48
43
44
47
46
45
50
53
48
46
54
49
53
50
52
51
48
53
58
54
53
53
59
60
57
58
46
50
47
50
66
51
35
41
48
43
35
38
43
41
39
38
34
38
37
37
36
42
46
37
30
32
30
31
35
34
37
37
33
29
34
33
35
37
30
33
24
21
29
31
23
25
30
26
24
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
26
25
29
37
38
40
43
40
40
37
44
43
42
48
45
48
45
48
50
50
53
50
55
56
49
49
56
52
59
57
60
59
55
53
55
46
47
52
46
45
37
42
43
44
43
42
43
36
38
36
35
38
40
34
38
39
38
29
26
28
34
37
34
38
30
37
34
28
28
32
33
36
21
21
31
21
30
36
28
29
34
36
31
23
32
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
10
31
25
31
39
39
48
38
44
46
46
51
48
50
45
52
53
51
51
47
60
51
57
49
43
54
60
58
58
61
53
50
61
51
56
51
50
57
44
47
49
64
37
46
46
33
40
36
49
38
38
37
36
27
37
36
36
39
37
37
36
34
31
38
27
36
28
29
32
30
35
23
26
32
31
29
35
27
28
32
30
26
23
22
28
25
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
20
30
27
42
41
40
45
39
47
43
46
45
42
47
50
53
52
48
54
48
51
43
52
51
50
53
57
53
66
49
59
59
60
59
50
51
53
44
46
42
48
32
42
44
39
49
42
36
33
36
33
43
39
41
36
38
30
28
34
37
33
39
33
30
36
34
33
30
31
32
22
32
26
30
34
28
29
37
29
30
29
31
29
28
31
31
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
33
29
31
45
39
45
40
42
48
47
53
47
45
54
48
52
43
51
44
54
52
59
58
51
64
60
54
61
50
59
52
53
53
64
56
46
52
49
52
54
47
35
48
39
39
42
34
48
37
39
46
35
33
37
35
34
37
40
40
33
39
28
36
34
32
31
31
31
27
27
28
31
37
34
26
31
33
25
31
28
29
29
31
34
31
31
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
13
36
31
40
45
40
49
43
45
47
46
52
46
51
52
55
55
52
48
55
57
56
59
50
56
57
51
56
57
57
52
56
64
58
50
52
53
53
50
44
43
45
57
44
42
44
37
43
33
42
46
39
39
34
36
32
34
40
39
32
30
25
35
33
31
32
28
24
33
27
30
41
34
29
30
34
34
29
29
33
37
32
32
28
31
26
37
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
25
39
26
48
43
42
48
42
55
49
50
48
47
55
51
50
48
52
58
56
57
52
55
54
57
57
57
61
54
54
64
57
62
60
49
46
54
48
47
53
53
49
27
39
46
50
38
40
40
42
29
39
33
43
45
49
42
35
29
33
34
40
33
36
34
31
30
36
26
41
35
30
32
31
32
31
32
34
36
32
20
28
25
30
24
33
26
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
38
37
41
53
42
49
46
46
50
45
53
49
50
52
50
55
54
51
56
54
54
52
56
57
63
55
55
55
58
63
44
62
51
50
53
58
53
51
49
43
46
31
62
49
40
36
46
44
39
37
44
33
39
36
31
28
33
35
35
34
37
30
32
29
32
33
33
36
37
33
34
29
30
29
26
33
27
22
28
28
40
32
35
26
34
36
33
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
15
51
33
48
51
44
57
45
49
51
51
46
46
54
57
54
56
49
55
52
56
59
59
50
57
52
48
58
54
55
46
63
55
65
59
61
50
53
46
48
50
41
47
32
41
52
41
38
34
42
41
42
42
41
43
42
44
37
39
39
32
35
32
38
33
34
30
34
27
34
26
30
34
35
30
36
24
28
37
30
33
23
30
20
36
31
26
24
28
17
8
5
4
3
3
3
3
2
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
88
96
88
115
90
103
99
95
110
104
108
112
102
113
105
115
105
105
116
108
112
105
116
114
112
104
116
119
121
112
123
122
128
115
108
98
109
104
100
95
89
92
101
106
97
85
86
83
85
81
77
77
78
83
75
65
67
75
70
65
68
68
77
68
65
58
65
63
67
56
65
64
63
56
62
57
63
67
61
65
55
58
53
60
53
53
54
59
24
20
14
8
5
5
3
3
2
3
3
3
4
4
4
3
3
2
2
2
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
27
76
45
53
55
52
59
47
54
59
57
62
51
54
56
61
52
55
60
54
55
59
60
57
54
52
55
59
59
52
57
54
56
58
53
49
53
54
47
49
50
57
49
42
27
38
40
34
34
36
42
46
43
44
33
33
41
33
31
30
33
38
36
27
26
30
38
33
33
25
34
33
31
32
35
28
33
32
27
29
27
28
25
31
27
26
26
27
11
28
26
14
14
11
6
5
5
3
1
2
2
1
1
1
1
1
2
2
2
3
3
3
3
4
4
3
3
3
3
2
2
2
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
59
69
50
63
51
55
55
54
61
58
52
53
53
64
58
51
61
54
57
58
66
58
61
50
54
59
64
60
61
58
57
64
63
55
54
55
59
56
54
45
51
44
46
51
64
42
34
44
48
49
42
44
36
33
36
35
38
48
34
33
36
35
32
34
41
32
29
31
25
34
33
31
32
24
29
30
23
26
27
30
20
26
25
20
22
23
20
11
1
33
36
31
19
14
10
12
10
8
7
7
3
3
2
2
3
2
2
1
1
0
0
0
0
0
0
1
1
1
1
2
2
2
3
3
2
2
3
3
3
3
3
2
2
2
2
2
2
2
2
2
2
2
2
1
1
1
1
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
0
0
0
0
0
0
98
67
52
73
59
56
57
55
62
57
58
56
55
61
56
65
54
56
59
56
62
58
56
62
62
56
59
64
54
56
66
53
66
58
52
58
55
46
46
54
50
45
48
41
30
40
45
42
45
43
44
35
38
40
38
40
36
24
36
36
35
35
32
35
22
32
32
27
30
31
33
27
25
30
23
25
30
28
31
19
32
22
24
19
24
18
18
6
0
25
23
28
24
20
18
9
8
10
11
7
9
9
8
5
5
5
5
4
4
4
4
3
3
3
2
2
2
1
0
0
0
0
0
0
1
1
1
1
1
1
1
2
2
2
2
1
1
1
1
1
1
1
1
2
2
2
1
1
1
1
1
2
2
2
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
3
4
4
4
4
5
6
9
18
64
118
55
63
64
54
65
56
59
64
56
61
55
57
62
59
54
49
62
59
57
54
57
59
54
56
56
58
55
51
56
55
67
58
53
58
55
54
48
47
51
42
48
52
43
60
44
45
47
38
35
40
34
40
32
30
35
32
37
32
34
34
32
32
29
29
30
25
29
35
31
23
29
27
28
27
25
28
29
17
25
20
20
15
22
17
16
7
1
0
30
30
27
26
17
18
20
15
9
7
9
9
7
7
7
6
4
2
4
3
3
3
4
4
3
4
4
4
5
5
4
4
4
4
4
4
4
3
3
3
2
2
2
2
2
2
3
3
3
3
3
3
3
3
3
3
3
4
4
3
3
3
3
3
3
3
3
3
3
3
3
3
4
3
3
3
3
4
4
4
5
6
5
5
7
9
11
16
23
48
93
85
43
71
56
53
60
51
63
57
57
59
57
62
52
57
56
56
54
55
62
58
58
53
54
60
59
59
59
58
60
58
59
58
58
52
50
48
50
54
48
54
46
39
44
31
43
44
38
45
42
36
40
28
37
42
34
38
31
30
33
31
28
28
23
32
28
28
29
28
27
29
27
28
24
31
29
26
20
27
22
16
23
18
20
17
13
3
0
0
34
29
29
27
30
19
14
17
14
13
11
8
9
9
9
10
9
11
9
7
6
5
4
4
2
2
2
2
1
2
3
3
3
3
3
3
2
2
2
2
3
3
3
3
2
2
2
2
2
2
2
2
2
2
3
3
3
3
3
3
4
4
4
4
4
4
4
5
5
5
5
5
4
4
4
4
4
6
6
6
7
8
9
11
13
16
18
24
41
89
123
46
40
64
47
53
55
52
58
53
55
51
46
54
55
56
50
58
54
55
57
55
57
55
57
54
54
59
49
56
54
58
57
54
56
52
52
55
55
48
47
42
45
49
43
28
43
36
38
42
41
30
36
45
32
34
34
26
30
34
30
33
30
24
32
29
27
31
30
28
29
29
24
27
30
19
24
21
26
15
20
18
15
20
13
12
5
1
0
0
39
41
32
30
20
23
20
15
19
14
12
10
10
9
11
7
10
9
9
11
12
10
9
7
9
8
7
5
6
4
4
4
4
2
2
2
3
5
5
5
5
5
4
4
5
5
5
5
5
5
5
5
5
5
4
4
4
4
4
5
4
4
4
4
4
5
5
4
4
5
5
5
6
7
7
7
9
7
8
12
12
12
14
17
19
23
32
43
67
117
156
0
35
48
40
56
46
52
58
50
52
51
53
56
46
51
54
47
59
57
55
58
56
52
58
51
59
51
54
57
62
61
65
60
46
58
63
47
48
54
43
42
45
38
44
61
42
38
47
35
34
46
32
35
33
35
29
33
33
33
34
29
26
33
31
22
23
24
29
33
27
24
30
22
20
23
24
24
14
27
15
23
18
15
15
10
3
0
0
0
24
28
34
29
32
23
19
16
11
15
13
15
11
10
6
8
7
4
5
6
6
6
7
8
8
7
7
7
7
8
7
7
6
6
6
5
5
2
2
2
2
2
3
3
3
3
3
3
3
2
2
2
2
2
2
2
2
2
2
3
3
3
4
4
4
3
4
5
6
5
6
7
6
6
8
11
11
10
11
10
12
14
16
18
20
26
32
45
68
97
0
3
59
47
44
55
47
56
56
50
53
50
58
57
56
56
48
57
54
55
56
51
52
55
53
48
54
51
55
63
61
64
54
47
59
54
47
56
49
42
51
49
47
46
43
31
39
47
38
37
37
29
42
22
35
28
30
30
36
34
32
23
27
26
15
31
36
37
30
19
26
29
17
26
19
24
22
18
23
15
20
13
14
14
8
3
1
0
0
0
29
29
33
36
28
31
27
24
23
14
13
15
13
11
12
9
8
9
9
6
3
6
5
6
6
6
5
7
5
5
5
5
6
7
5
6
5
6
5
5
4
3
2
3
3
3
3
3
3
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
6
6
5
6
6
7
7
8
7
6
8
12
12
12
12
13
17
18
24
25
33
46
69
60
0
30
71
50
54
56
52
61
53
57
57
51
55
54
60
46
54
63
57
58
59
58
55
54
57
62
59
54
63
59
66
58
64
60
56
59
61
49
51
47
42
49
39
42
41
54
35
37
42
41
41
33
24
31
34
30
32
33
33
27
21
31
31
25
36
32
26
22
24
28
23
17
30
21
27
25
20
17
17
17
17
13
17
11
11
3
0
0
0
0
27
27
28
26
32
22
22
20
18
20
20
12
13
13
10
12
11
9
8
9
12
10
8
7
6
8
9
8
9
8
8
7
5
6
7
6
7
8
9
8
8
9
9
6
5
5
5
5
4
3
3
3
3
3
5
5
5
5
6
6
5
5
5
5
5
7
5
4
6
6
6
6
8
7
10
10
9
6
9
11
13
15
15
18
21
28
35
43
67
7
0
60
75
49
68
55
58
62
51
55
51
56
63
57
56
55
59
60
58
62
56
58
49
59
51
59
59
68
62
56
59
62
49
51
58
55
48
46
46
46
48
43
50
38
37
30
47
42
27
29
26
33
27
38
29
28
35
32
28
29
28
26
25
29
32
26
28
30
24
24
22
25
17
20
21
18
14
20
18
17
12
15
10
7
1
1
0
0
0
0
25
28
25
34
32
41
27
25
20
20
15
17
16
14
15
12
10
12
9
7
6
5
8
7
5
4
5
4
5
5
6
6
8
7
7
7
6
5
5
5
5
4
5
7
8
6
8
8
9
10
8
8
8
8
5
5
6
6
4
3
4
5
4
4
7
5
5
7
7
7
8
8
8
10
7
8
9
12
12
13
14
15
16
19
21
28
33
50
52
1
0
103
69
62
68
57
62
64
55
60
56
61
60
57
58
56
61
58
58
59
52
53
54
57
57
59
53
63
56
63
53
58
59
54
50
50
45
50
45
49
45
40
30
40
45
24
32
34
44
38
29
30
42
30
29
37
28
34
24
28
28
28
30
28
23
25
25
21
25
22
24
21
20
23
20
18
16
16
15
14
12
14
9
10
3
0
0
0
0
0
26
24
29
24
30
23
32
22
25
18
20
16
15
16
13
13
16
12
11
13
11
12
9
10
11
11
8
7
7
7
5
6
4
5
5
6
6
7
7
7
8
9
8
9
9
11
9
8
6
6
7
8
7
7
8
8
7
8
9
9
9
8
8
8
9
8
9
8
8
9
10
9
9
9
10
11
11
14
15
13
17
17
18
21
29
32
43
57
45
22
72
123
59
59
63
58
68
58
59
61
55
60
57
49
53
55
62
53
59
49
52
51
58
53
57
58
61
56
58
59
57
58
47
54
62
50
48
43
46
40
36
44
46
38
30
56
41
34
28
29
32
30
29
37
37
30
35
27
27
25
31
26
22
28
26
26
25
26
24
26
20
19
24
19
19
15
18
18
17
8
16
10
7
1
1
0
0
0
0
0
28
28
27
27
28
34
32
30
24
27
21
23
17
15
15
16
12
16
17
14
13
13
12
10
11
9
12
14
10
11
12
11
12
10
10
8
9
7
6
6
5
5
5
4
3
3
3
6
8
8
8
8
10
10
10
9
10
9
10
10
11
11
11
13
9
11
10
12
12
10
9
12
10
12
12
14
15
12
13
18
16
20
25
31
32
37
50
63
32
49
95
88
48
67
59
54
62
51
57
53
52
60
47
58
50
59
53
53
56
58
58
55
57
53
55
55
60
52
59
58
62
51
54
58
50
47
47
49
43
38
44
35
34
42
39
26
37
31
34
28
35
34
36
29
33
31
26
25
37
32
23
27
26
22
27
27
25
21
21
16
20
23
18
18
16
16
20
12
11
15
11
8
9
3
0
0
0
0
0
0
34
30
28
30
23
21
25
30
25
15
21
15
22
18
14
15
14
11
11
11
10
9
11
9
9
10
7
7
9
7
7
6
5
6
6
7
7
9
10
9
9
7
8
7
11
11
10
6
5
5
6
6
6
6
7
9
8
9
9
9
8
8
9
10
10
11
14
12
11
13
14
14
17
18
20
16
15
21
21
20
26
27
32
32
35
50
59
69
44
93
127
49
39
63
47
56
58
45
57
47
55
57
51
52
54
56
57
55
56
51
49
53
50
52
53
59
55
53
54
57
58
52
53
54
48
49
40
44
42
46
43
43
47
39
42
53
32
41
37
36
32
35
35
36
27
32
30
33
23
21
25
24
28
30
24
20
23
26
21
20
20
18
19
17
14
20
15
15
9
13
8
8
1
1
0
0
0
0
0
0
32
33
32
33
35
37
28
27
29
32
19
23
17
23
21
13
16
15
13
14
13
14
10
12
12
9
9
8
7
8
8
9
10
9
10
11
9
8
8
9
10
11
9
9
5
4
5
8
9
9
8
8
8
9
7
6
7
7
7
9
9
9
9
9
11
10
10
11
13
15
15
15
15
14
15
18
22
19
22
25
25
30
34
40
50
56
71
68
67
125
162
0
31
46
36
55
46
48
44
47
55
49
51
50
44
55
51
60
53
51
56
49
59
54
64
59
53
57
59
55
54
45
52
54
44
40
47
40
39
41
40
37
36
39
36
27
36
33
28
32
34
36
26
30
35
25
26
22
26
28
25
24
28
20
24
30
20
17
21
20
22
17
18
18
15
19
13
11
12
12
8
6
3
0
0
0
0
0
0
0
23
27
24
22
27
24
35
28
29
23
25
20
22
14
22
22
17
14
16
12
13
12
14
12
10
12
10
10
12
12
10
11
8
10
8
5
6
6
6
7
5
7
9
9
10
14
11
10
8
9
10
8
8
8
11
11
11
11
11
11
11
13
12
10
11
13
12
14
14
14
13
14
15
16
15
16
19
21
22
26
25
30
33
38
50
55
67
52
74
98
0
4
53
46
45
58
42
53
51
50
59
50
52
48
56
57
55
57
51
54
54
53
49
60
58
52
56
59
59
55
46
60
59
45
47
48
51
45
43
44
43
46
41
38
36
50
36
31
28
30
33
28
33
30
22
30
27
31
17
21
24
28
25
27
24
17
22
21
13
20
13
23
18
13
24
9
13
10
12
6
9
1
1
0
0
0
0
0
0
0
28
26
31
31
30
33
26
32
26
30
28
23
17
18
14
16
17
19
13
15
15
10
12
13
13
12
10
10
5
4
6
5
7
6
7
10
9
10
8
8
10
9
9
10
8
5
8
8
12
10
10
12
11
9
7
8
8
8
9
6
8
8
10
11
10
10
11
11
11
10
12
10
13
13
13
18
18
20
22
23
29
30
34
41
44
55
63
46
75
61
0
24
67
44
55
52
45
56
53
53
54
48
59
55
61
53
57
53
49
49
46
57
56
60
59
55
58
53
51
60
59
58
55
49
51
43
40
46
45
41
39
39
37
36
39
21
34
31
36
40
30
37
30
27
28
27
29
18
29
26
27
28
20
27
24
19
19
18
23
16
23
13
12
18
11
10
10
12
11
7
4
3
0
0
0
0
0
0
0
0
33
27
29
26
26
26
28
29
29
26
27
28
23
22
18
18
15
15
19
17
17
16
13
13
14
13
19
17
18
17
14
12
12
10
10
8
9
6
6
7
6
5
5
5
7
6
9
9
6
7
8
9
9
11
12
12
10
10
7
10
8
8
9
11
11
9
10
10
10
12
13
15
16
15
20
17
18
21
22
24
29
33
34
43
49
57
57
52
64
7
0
54
67
43
62
53
53
58
54
61
53
54
46
50
61
58
54
54
56
55
57
58
58
56
56
60
50
59
53
48
50
49
50
50
41
56
42
36
43
38
39
38
42
31
37
25
32
31
33
29
35
26
27
26
30
22
21
27
31
26
26
20
30
18
18
23
18
17
19
19
15
16
18
19
10
16
11
9
6
8
2
1
0
0
0
0
0
0
0
0
33
39
28
34
27
30
32
30
35
33
26
25
29
21
19
16
19
15
15
14
13
16
15
13
11
13
9
10
12
13
13
12
12
12
11
11
12
12
13
13
12
13
12
11
11
12
8
8
12
12
11
10
10
9
8
6
10
10
13
12
13
13
14
9
11
15
12
13
15
14
14
14
14
16
16
19
19
20
25
27
28
31
39
40
43
57
44
46
56
0
0
85
62
54
68
53
59
54
51
61
53
58
57
59
62
53
55
54
54
53
56
56
57
61
52
58
59
64
59
57
58
53
48
48
51
42
46
45
40
43
39
40
34
45
32
51
27
30
35
27
29
29
28
28
23
25
24
26
21
22
25
21
20
23
17
19
16
22
14
19
16
14
15
9
12
7
7
12
9
4
2
0
0
0
0
0
0
0
0
0
25
23
29
25
33
27
26
23
27
30
34
27
24
29
24
22
18
21
16
17
18
13
15
14
15
14
14
12
13
13
14
15
16
14
12
14
11
11
12
9
10
8
9
10
9
8
10
9
6
8
9
7
8
9
11
14
13
12
13
15
16
16
15
18
13
11
16
14
13
12
12
16
17
16
18
21
21
22
25
30
29
34
38
42
52
58
39
55
38
12
51
116
52
63
66
52
64
55
56
60
50
53
52
59
58
58
62
50
58
57
59
56
54
59
54
51
53
50
58
56
56
51
50
43
46
38
41
44
46
41
48
36
32
32
35
15
32
37
30
35
27
25
22
24
26
30
27
25
25
32
23
27
20
21
22
14
22
14
23
16
14
18
18
11
14
11
9
4
5
2
1
0
0
0
0
0
0
0
0
0
38
38
38
34
28
30
34
37
27
30
27
33
27
27
26
27
24
21
24
23
17
22
18
20
17
17
18
19
15
13
14
14
13
13
15
11
12
13
12
13
12
14
11
12
13
17
11
12
12
10
9
11
12
13
11
11
11
13
11
11
11
12
12
14
18
18
14
14
16
19
22
18
21
25
25
22
27
27
28
30
36
39
41
46
56
55
43
59
25
41
87
84
44
69
54
54
61
53
57
53
53
48
56
61
50
52
53
53
49
49
56
54
58
45
53
53
57
58
53
53
44
53
48
52
39
44
41
43
40
46
31
33
35
32
30
51
37
32
29
32
29
26
28
31
26
24
25
23
23
20
19
21
21
11
17
17
18
21
15
14
17
16
7
12
6
8
12
8
5
2
0
0
0
0
0
0
0
0
0
0
42
36
32
31
35
27
25
27
35
27
30
25
28
21
28
22
24
18
18
16
20
15
18
18
17
14
13
11
14
17
13
14
11
15
16
16
15
16
13
12
14
14
15
12
12
7
12
14
12
12
13
12
10
10
11
12
10
11
13
13
10
11
11
11
11
13
14
16
17
18
19
21
20
22
24
29
26
31
32
32
37
38
42
51
59
48
57
63
38
79
117
45
41
67
48
53
52
51
60
51
51
57
56
58
51
55
48
54
56
55
53
50
54
55
61
45
60
52
52
50
55
52
43
42
51
39
47
46
41
32
37
34
39
29
34
20
28
28
26
21
26
29
31
22
29
20
22
23
27
17
24
21
15
24
18
23
17
13
14
18
13
14
13
11
10
8
8
5
1
1
0
0
0
0
0
0
0
0
0
0
27
32
32
36
27
36
30
31
30
30
28
29
27
28
26
27
21
28
18
16
18
19
16
13
16
16
15
15
13
11
14
12
11
13
12
12
14
13
15
14
13
10
12
14
14
9
14
11
14
14
13
13
13
12
12
10
12
11
10
8
13
12
10
13
10
11
15
18
20
17
16
20
21
21
22
22
29
30
32
34
38
43
48
55
65
50
69
61
59
118
157
0
39
50
40
52
44
45
55
44
52
56
53
55
48
57
54
52
47
56
52
56
58
49
47
60
58
51
65
59
54
51
52
44
40
50
48
39
38
34
33
34
31
36
32
24
31
24
34
30
27
30
28
25
22
27
27
24
14
24
24
17
15
15
16
18
15
18
15
14
16
7
11
7
9
9
6
5
2
0
0
0
0
0
0
0
0
0
0
0
26
32
30
28
37
28
34
25
32
31
31
30
29
30
27
22
27
19
27
24
19
17
19
17
18
18
17
20
17
16
14
14
19
14
12
15
15
13
15
15
12
15
12
13
11
20
12
15
14
12
13
14
15
15
14
16
14
12
14
17
15
14
14
12
17
20
19
19
16
22
22
24
23
24
25
29
33
32
34
39
38
43
53
61
54
56
64
45
64
95
0
4
57
50
43
57
49
53
56
47
57
49
61
47
58
52
50
54
54
57
52
57
52
62
58
62
51
56
52
49
51
41
38
43
42
44
35
36
36
41
34
38
35
38
30
42
28
31
30
35
31
24
20
27
22
21
17
23
27
23
15
16
21
19
21
15
17
15
14
14
12
14
8
10
7
9
4
2
1
0
0
0
0
0
0
0
0
0
0
0
23
23
38
34
29
37
31
38
26
33
35
35
34
26
27
29
24
25
20
25
20
24
19
21
13
15
17
15
17
15
14
15
13
12
14
13
12
17
16
16
19
18
15
13
13
9
13
11
14
15
15
13
14
13
11
12
18
19
16
15
15
15
18
20
21
19
20
18
21
19
23
20
21
23
30
29
27
29
32
36
40
45
54
60
54
51
60
44
70
60
0
34
80
46
53
54
52
62
46
54
58
56
54
57
52
55
48
51
55
56
50
59
55
54
55
58
56
64
41
44
44
48
50
44
46
41
39
38
37
30
38
33
30
25
26
20
24
33
27
18
22
26
31
20
26
26
26
20
18
20
16
15
18
19
15
14
16
13
15
13
9
8
8
7
8
5
4
1
0
0
0
0
0
0
0
0
0
0
0
0
27
23
21
30
31
24
29
25
35
26
25
30
25
31
25
24
26
25
26
21
24
16
22
18
22
18
17
17
17
21
19
18
17
16
15
16
13
11
10
12
13
11
17
16
15
20
13
14
10
14
16
17
17
17
24
21
14
15
14
13
16
17
19
16
17
15
16
19
17
20
20
25
25
25
22
24
25
28
31
35
41
46
47
54
43
58
51
43
66
7
0
65
70
51
69
57
51
64
52
62
50
55
58
54
62
52
57
53
51
50
58
58
56
56
57
59
59
50
51
58
47
43
44
46
41
35
42
36
36
39
30
35
36
32
34
39
40
32
29
29
26
23
22
29
18
19
22
20
23
17
18
21
17
17
15
17
11
15
12
11
13
7
9
6
8
4
2
1
0
0
0
0
0
0
0
0
0
0
0
0
31
31
26
28
31
35
32
32
25
35
29
26
37
29
31
23
24
26
21
24
21
27
18
22
19
19
16
14
17
13
19
16
13
14
15
12
14
13
11
12
9
11
13
14
17
12
18
16
19
16
12
13
14
15
11
11
13
15
19
23
21
22
22
22
19
24
19
20
22
21
21
20
23
24
23
26
29
34
39
34
40
48
52
52
49
56
37
47
53
0
0
109
73
59
68
57
60
56
52
58
58
61
60
53
56
50
52
55
62
54
58
53
58
56
50
48
44
48
55
44
47
44
45
43
40
44
35
39
36
31
41
32
28
30
26
25
27
26
21
27
29
27
21
21
25
24
16
21
18
14
16
19
20
16
16
16
15
14
14
9
7
8
6
10
6
4
1
0
0
0
0
0
0
0
0
0
0
0
0
0
30
29
27
30
31
29
28
28
32
32
35
30
27
30
28
32
25
21
29
23
26
22
24
21
21
21
21
16
12
14
12
17
22
20
17
17
17
15
18
15
15
19
15
17
16
23
17
18
15
14
16
17
15
16
16
17
18
19
17
18
18
18
18
20
20
19
22
22
24
24
22
23
25
28
30
33
32
35
35
42
45
46
53
47
50
52
40
57
44
25
83
120
59
61
61
49
67
56
56
56
52
62
51
53
53
50
55
52
51
54
58
55
50
50
52
50
53
43
47
48
50
45
44
41
44
42
32
38
33
33
29
29
34
27
35
39
29
27
25
21
21
20
25
16
19
18
25
20
16
19
21
18
19
14
17
8
18
10
12
10
8
10
7
6
3
2
1
0
0
0
0
0
0
0
0
0
0
0
0
0
26
29
29
22
24
28
35
32
26
27
32
29
27
32
29
26
25
28
20
24
21
21
20
19
23
20
23
27
25
20
18
14
15
17
18
18
17
18
17
16
18
10
13
12
13
8
13
15
20
20
19
17
15
12
17
17
19
17
20
19
19
19
15
18
20
18
24
23
22
23
26
30
29
29
32
29
30
38
40
46
48
49
58
52
58
56
51
69
36
56
102
88
43
63
58
51
59
43
58
55
52
55
49
57
47
53
55
50
54
56
50
50
52
51
57
50
55
53
55
46
42
48
42
43
40
40
43
35
33
37
34
34
26
29
27
23
27
22
28
31
24
28
19
24
19
21
17
21
15
16
18
19
10
15
13
18
8
16
9
9
8
5
10
7
4
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
26
23
28
26
28
31
25
26
30
24
24
32
30
28
31
31
30
21
26
25
24
26
24
21
18
21
18
15
20
20
17
19
17
15
17
15
16
17
14
15
17
19
18
15
16
12
19
15
13
13
14
15
17
20
18
18
17
17
16
14
14
17
21
22
24
26
23
25
25
30
28
27
28
32
35
37
44
41
45
49
54
61
68
57
66
55
62
64
46
102
129
47
38
59
39
53
51
47
51
48
57
47
49
52
43
50
49
57
51
52
59
50
51
44
50
51
44
56
50
53
46
46
41
41
40
32
40
33
37
36
29
28
25
33
25
23
24
29
28
25
23
17
17
17
22
24
21
10
20
23
19
13
16
17
10
13
13
10
8
6
7
8
5
2
2
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
43
38
31
36
27
26
30
37
35
34
27
33
30
27
33
34
30
32
22
22
23
23
24
24
20
19
16
21
15
18
22
18
15
20
15
16
17
17
17
19
14
17
14
18
15
21
12
15
14
15
16
18
19
19
15
15
18
18
14
15
19
17
17
19
20
19
21
21
26
23
29
29
35
34
31
39
44
41
46
50
54
70
57
64
65
55
71
71
72
123
153
0
32
46
38
55
43
48
51
45
54
45
50
56
51
57
45
49
51
50
51
49
53
57
53
52
56
49
48
50
46
40
42
41
38
42
34
35
38
31
34
26
31
29
36
37
26
26
24
16
25
17
23
26
21
15
18
17
15
18
16
13
14
10
17
12
14
7
9
9
5
8
6
5
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
19
30
29
24
32
28
27
21
26
35
37
25
34
28
20
23
27
26
31
24
25
19
20
27
25
23
27
24
27
25
21
22
20
16
21
21
19
17
19
17
19
17
19
16
16
10
13
12
11
16
16
17
15
17
20
20
18
17
21
25
21
22
21
17
18
21
19
22
22
26
27
31
27
29
37
40
39
45
44
45
56
61
54
57
58
58
72
55
74
99
0
2
47
42
39
54
44
53
48
48
52
51
55
47
49
45
54
55
54
58
49
56
49
57
51
58
49
51
49
40
48
44
45
41
35
33
35
35
30
26
27
30
37
25
26
14
24
25
23
21
14
23
22
14
20
17
10
23
24
14
12
16
16
15
13
13
11
10
6
6
8
6
2
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
33
27
33
37
26
31
30
32
28
24
27
33
30
38
36
36
36
32
24
28
26
28
27
18
27
25
22
18
20
21
24
26
21
21
18
20
21
18
20
22
20
20
20
18
17
26
20
21
21
17
16
13
16
15
16
18
17
20
21
20
20
20
23
26
23
23
25
25
22
23
28
26
31
38
39
34
38
41
49
56
60
57
50
61
54
60
62
47
76
56
0
25
66
40
49
50
45
53
50
56
51
53
55
43
55
51
54
54
53
55
52
55
50
55
54
46
53
53
48
44
42
44
41
42
40
38
36
32
30
34
28
30
22
35
30
38
29
22
14
26
26
23
18
23
19
16
22
17
13
17
15
14
12
13
11
11
3
8
8
5
8
5
5
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
38
38
36
30
40
30
29
33
38
34
33
35
32
32
29
26
29
31
35
26
23
23
19
25
17
20
20
25
16
17
16
17
23
25
23
22
21
25
21
17
18
18
14
15
17
12
17
16
17
18
16
18
16
18
18
19
21
21
23
21
25
24
29
23
27
26
27
29
30
31
28
30
31
29
31
38
37
43
44
49
57
55
59
59
50
57
52
52
67
6
0
51
63
42
65
49
51
56
53
58
56
52
50
51
56
55
54
56
52
52
48
48
56
51
52
57
55
51
41
45
45
42
42
30
37
35
28
30
30
31
27
35
35
26
24
15
22
19
24
16
17
18
18
18
14
21
17
19
17
10
14
14
11
12
11
10
12
7
6
9
5
3
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
27
27
26
29
26
36
35
32
30
31
31
27
30
35
33
33
28
36
29
33
29
28
32
24
27
27
27
23
27
21
22
17
23
21
22
19
18
17
17
19
18
16
21
23
23
14
21
19
18
16
19
20
20
18
16
19
20
18
18
18
21
26
23
25
24
27
27
27
30
31
35
33
36
39
39
39
42
42
44
56
56
46
52
52
47
57
47
50
51
0
0
81
56
50
61
50
58
55
52
58
50
57
57
58
55
50
54
52
58
50
55
51
50
55
49
50
49
43
45
50
42
42
37
44
34
32
31
35
29
28
31
24
27
30
23
20
22
22
26
24
22
17
19
17
20
15
20
14
14
18
14
14
17
8
11
6
7
6
5
7
5
4
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
33
31
31
37
31
30
28
22
29
28
29
29
31
26
40
34
33
25
33
33
32
26
24
29
22
21
23
22
22
25
20
21
16
18
17
18
17
16
18
17
22
18
18
17
17
29
19
20
19
22
22
20
23
22
27
20
21
22
25
27
25
20
20
23
22
23
29
30
31
33
30
36
38
37
39
40
39
43
54
56
57
51
59
52
52
54
41
56
39
11
49
110
53
58
63
53
60
50
56
57
51
59
51
51
52
53
56
49
49
41
52
50
59
52
50
51
47
48
50
44
41
40
35
35
37
31
38
29
32
27
31
32
30
21
21
30
19
21
20
19
15
19
19
20
15
21
17
15
14
10
14
10
9
14
8
9
7
8
9
6
3
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
33
34
30
23
30
28
33
41
31
37
34
36
29
30
23
35
33
32
31
28
31
29
24
23
28
27
20
24
24
21
23
22
19
12
15
18
20
18
19
19
17
27
23
20
21
10
19
23
27
25
23
22
22
21
18
22
22
26
23
24
21
25
21
22
27
30
28
30
30
28
31
32
34
38
38
41
40
48
49
56
55
53
55
46
58
54
49
60
24
39
83
79
41
68
48
52
57
56
58
52
52
53
49
54
51
54
54
44
50
50
53
55
53
43
55
53
53
47
53
39
40
38
37
31
30
39
31
35
30
35
29
26
24
22
24
17
24
23
21
18
20
19
21
17
19
15
15
16
15
16
12
14
10
11
8
7
5
4
6
4
5
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
36
36
35
35
34
28
30
21
29
24
29
29
32
32
31
32
31
35
30
32
33
36
32
31
25
22
24
19
20
21
19
21
20
24
18
18
20
24
19
20
19
14
16
24
24
36
26
21
19
20
23
24
22
25
27
25
22
20
21
17
18
20
24
28
31
29
30
29
31
34
36
36
38
38
38
41
50
52
63
62
52
61
56
55
62
53
54
56
34
81
111
44
38
61
48
50
51
48
57
50
55
49
47
52
43
49
47
52
50
54
50
55
49
52
55
49
48
43
44
45
40
35
36
35
37
30
30
24
28
27
29
30
22
24
22
28
17
23
13
19
18
23
16
17
19
15
15
12
11
15
12
9
12
8
10
7
8
7
6
2
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
24
28
31
31
26
37
27
34
27
28
30
29
33
31
34
28
35
28
31
32
27
24
31
23
27
27
26
27
21
24
29
23
23
25
28
24
21
20
25
22
18
18
22
19
20
14
19
23
23
22
22
22
25
25
23
23
27
26
23
25
29
26
25
28
24
26
24
29
30
31
33
36
37
37
41
41
50
55
60
58
53
59
58
58
60
50
67
61
62
110
149
0
32
45
39
53
48
47
51
48
58
48
49
48
48
56
45
58
49
63
51
52
55
57
51
48
44
51
39
38
39
37
35
41
31
31
36
31
30
28
30
23
21
25
26
18
25
15
21
21
22
17
16
19
15
18
15
14
14
11
10
11
10
5
6
6
5
6
3
5
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
30
29
35
31
31
25
33
31
34
31
26
29
27
26
26
29
32
30
30
29
32
33
26
33
27
25
26
26
28
25
23
27
20
24
24
23
21
22
21
25
28
29
21
22
20
16
25
23
22
22
21
23
20
22
25
29
27
24
26
27
25
31
34
28
30
28
32
28
32
33
32
36
35
39
41
47
51
51
56
54
57
60
53
57
57
51
65
50
65
87
0
3
56
46
43
54
45
52
51
50
48
45
50
48
50
52
50
56
56
53
52
53
49
55
52
54
49
48
37
42
38
41
34
29
33
31
24
33
26
30
24
22
26
22
15
11
20
18
19
16
21
13
23
15
17
16
10
11
13
8
12
10
9
11
4
6
6
6
3
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
19
23
23
31
35
28
26
28
31
32
29
27
25
33
30
29
26
37
30
26
28
26
30
24
29
30
27
25
29
25
25
23
37
23
22
26
26
23
21
20
24
22
24
22
22
30
21
21
24
25
23
22
26
24
18
19
20
24
28
27
30
26
28
26
29
31
29
34
31
31
36
33
35
39
44
47
48
62
54
47
55
57
48
59
53
57
58
39
64
58
0
26
71
46
52
53
50
64
48
50
51
47
54
49
59
53
55
49
53
47
55
54
46
51
46
48
48
41
42
40
38
34
41
34
28
29
31
23
32
26
23
23
20
22
27
33
18
19
20
19
12
21
13
16
17
9
15
17
12
12
10
11
4
4
9
6
5
3
4
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
28
23
26
29
26
37
31
27
24
31
34
25
31
26
27
27
29
30
35
34
26
30
28
32
29
29
29
29
23
28
27
26
22
32
27
24
29
27
25
23
19
21
25
21
20
14
20
22
21
23
26
27
24
28
26
23
24
24
25
25
26
27
29
30
25
29
31
28
31
35
33
33
36
35
37
43
48
48
55
55
54
46
51
55
45
56
52
43
58
6
0
56
69
48
61
56
50
57
53
61
54
56
54
49
53
48
58
53
55
56
54
49
54
46
53
45
46
35
40
33
36
35
28
31
35
29
29
34
24
25
26
26
22
19
15
13
14
22
17
19
18
16
18
18
11
13
12
13
8
11
10
6
10
6
5
5
6
4
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
38
33
30
27
35
27
34
35
32
28
32
42
31
30
31
31
26
25
29
33
33
33
33
29
29
29
31
30
28
26
25
23
27
20
29
23
17
22
28
25
26
28
18
26
27
34
23
23
22
21
22
20
24
19
27
25
25
27
23
27
27
28
28
29
33
33
31
33
37
34
36
38
37
40
50
50
53
55
55
50
56
48
54
52
44
54
32
44
47
0
0
101
68
52
69
51
63
57
53
56
48
50
49
58
62
46
59
52
52
48
55
49
53
52
45
48
43
41
35
44
38
33
33
31
30
31
32
27
30
21
22
18
24
19
26
25
22
17
21
15
18
16
16
15
13
15
15
4
13
11
11
6
3
7
4
7
4
3
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
27
32
25
27
27
28
28
29
30
31
28
29
36
36
33
34
36
33
34
39
37
30
33
31
31
29
27
23
26
24
23
26
15
25
20
32
30
23
21
26
23
21
30
27
23
17
26
26
26
24
24
27
22
22
19
24
25
25
26
31
28
29
28
31
34
31
37
37
34
41
39
40
45
46
42
50
51
61
48
54
56
51
57
48
53
52
40
52
41
19
63
114
50
63
57
51
67
54
55
54
46
52
49
51
52
59
47
50
53
53
47
48
45
50
52
44
36
44
43
41
32
32
34
31
29
30
21
25
24
25
22
23
15
24
16
12
21
16
15
20
17
20
11
10
13
13
10
12
11
12
4
10
8
6
7
4
3
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
33
32
34
33
28
38
34
32
30
31
32
30
28
28
29
36
30
30
30
25
31
31
26
31
24
26
23
31
27
29
26
30
29
24
26
18
25
30
22
23
25
21
22
22
30
36
23
20
22
24
23
22
21
24
26
28
28
26
26
25
29
26
26
29
28
32
31
38
40
37
44
44
43
52
53
61
62
57
56
60
53
57
59
47
55
52
47
54
30
45
89
83
43
59
54
54
55
46
58
47
46
52
49
56
47
55
50
53
48
49
45
49
58
50
42
44
42
37
39
32
33
34
30
29
30
26
29
27
23
27
20
19
25
18
20
29
16
20
18
19
20
13
18
15
13
13
7
15
9
5
8
3
6
4
7
3
3
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
38
33
31
27
29
27
32
33
42
33
34
33
36
30
32
25
34
31
26
30
30
32
32
25
35
27
34
26
27
24
25
20
30
25
22
26
22
24
30
25
25
32
23
24
20
17
26
29
26
21
19
18
24
26
28
22
24
29
32
25
25
30
27
33
33
34
33
33
34
36
34
38
48
45
56
53
67
60
56
62
58
63
59
56
58
49
54
62
41
86
124
46
39
66
46
56
54
48
52
40
51
52
53
53
42
51
48
54
46
45
55
51
51
51
53
43
42
39
43
33
37
32
29
32
29
29
30
26
26
17
22
22
20
21
13
12
19
18
18
16
15
14
11
11
12
8
11
6
12
7
6
7
6
7
3
4
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
25
32
34
29
30
18
26
26
22
31
26
29
27
38
29
32
30
36
38
33
35
36
31
35
28
32
24
29
29
34
33
30
26
27
28
27
24
20
21
25
27
20
28
23
23
18
25
24
23
27
24
29
28
26
25
28
26
24
24
27
32
29
33
30
31
28
37
32
35
40
36
45
43
53
54
57
58
51
57
61
54
56
50
57
66
55
65
66
63
119
153
0
33
42
38
53
44
43
41
43
54
44
53
49
49
48
55
50
50
58
50
57
51
47
41
38
41
40
32
30
33
30
30
27
26
29
24
21
21
23
20
22
20
16
23
16
16
17
19
14
10
15
15
14
10
6
16
14
4
8
5
7
3
6
3
2
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
30
28
32
36
31
42
28
28
29
28
34
26
32
29
38
31
32
28
29
29
29
29
40
33
34
34
33
31
34
27
27
29
30
29
27
24
29
29
29
28
26
26
29
28
26
33
22
23
27
28
34
30
24
22
24
28
28
31
31
32
28
34
34
33
33
36
34
36
38
33
44
45
46
49
48
56
59
53
58
54
52
57
53
57
60
49
60
44
67
99
0
3
51
45
45
52
41
54
50
48
50
50
54
45
53
54
49
42
49
52
50
48
47
47
42
43
39
42
31
30
30
28
35
28
31
28
27
27
20
19
21
18
19
17
20
22
18
18
14
16
16
15
8
10
8
16
7
8
8
6
8
5
8
3
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
29
30
27
31
32
26
34
35
35
34
32
36
30
31
35
30
30
34
36
36
35
38
31
38
34
32
33
29
25
32
28
28
24
26
29
27
26
26
25
22
24
28
20
23
25
19
26
23
23
28
27
28
31
31
33
30
29
29
28
32
31
28
33
28
31
38
35
39
40
43
38
44
51
50
55
56
48
55
63
50
57
57
51
58
44
49
59
48
70
54
0
26
64
44
53
54
45
58
46
53
51
52
47
51
56
46
51
53
54
51
49
54
48
46
42
42
37
36
26
37
29
34
28
30
28
24
23
20
20
25
21
22
20
22
18
13
21
16
17
13
18
7
13
10
12
11
11
5
7
4
6
3
4
3
2
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
35
32
31
31
31
31
27
28
29
25
26
31
31
28
29
37
31
32
29
34
29
34
36
30
33
31
31
31
31
25
31
31
29
24
28
29
23
24
25
25
19
18
19
22
23
34
24
28
28
21
22
25
30
33
30
24
29
26
33
30
30
33
35
38
41
36
36
38
35
37
47
48
50
55
59
58
53
60
55
48
54
48
51
57
42
53
51
43
66
7
0
55
70
45
66
52
56
51
49
57
54
55
56
51
54
54
53
50
54
47
52
44
46
39
43
39
36
27
33
37
34
30
27
29
28
24
23
19
22
14
20
18
16
17
17
26
15
18
11
17
10
13
12
9
13
9
7
7
5
8
4
7
5
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
36
32
33
31
34
35
38
34
32
38
35
29
33
35
31
34
37
32
33
34
39
29
36
39
32
38
36
35
31
32
31
33
27
30
25
26
30
29
27
28
28
28
34
30
24
17
27
27
30
31
29
25
28
26
24
34
32
34
29
31
35
35
35
36
36
38
42
40
43
46
49
51
53
50
53
56
49
54
49
54
53
45
54
49
45
56
41
49
53
1
0
89
62
57
62
49
56
54
47
55
49
57
53
53
54
52
49
50
48
48
46
49
50
45
37
37
43
34
45
27
30
30
29
31
19
21
20
22
20
24
21
19
20
20
16
11
16
11
21
15
12
13
9
15
9
10
4
8
3
5
3
5
1
1
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
34
39
31
34
30
29
32
34
33
30
34
37
30
31
28
25
32
30
27
25
30
36
30
36
39
32
32
30
35
27
25
22
35
36
30
25
26
25
27
27
33
32
24
27
33
22
29
28
27
22
28
31
24
25
29
29
29
30
32
29
32
30
30
32
33
36
34
39
39
49
49
46
51
55
63
55
57
53
52
53
55
53
56
48
48
53
38
57
38
15
59
114
55
58
64
53
60
47
53
53
52
50
47
51
52
44
46
47
46
48
49
49
41
40
39
36
28
35
36
37
32
29
28
22
26
22
20
18
19
23
18
23
17
15
19
11
15
19
12
8
10
8
11
10
9
6
9
4
10
3
9
5
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
30
31
35
26
34
34
25
31
30
33
26
26
33
30
36
41
33
36
38
30
24
30
28
25
33
35
32
37
34
35
34
35
30
30
32
31
28
31
28
26
24
26
30
27
28
41
30
28
27
36
30
30
34
36
37
35
36
34
32
32
32
34
35
38
35
32
42
40
49
46
48
52
51
56
55
51
58
62
56
59
52
50
56
45
59
52
44
56
28
43
87
83
41
66
49
46
57
43
54
52
53
51
44
51
46
54
44
49
57
48
48
45
41
41
41
40
39
37
32
27
31
28
27
21
21
22
24
25
23
19
22
13
21
15
15
22
18
15
10
9
9
12
11
7
11
7
6
7
5
6
3
1
1
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
29
30
34
33
24
32
35
29
30
29
35
30
30
28
26
24
27
30
30
37
35
25
30
33
34
33
37
34
32
35
29
25
24
24
28
32
30
26
26
27
26
22
26
30
25
19
26
29
27
25
29
29
27
31
27
30
27
30
35
37
36
38
32
34
39
40
35
43
42
46
45
54
50
55
52
58
58
53
50
53
45
57
53
50
56
46
58
63
37
84
117
40
37
58
41
53
42
48
56
44
45
46
47
47
44
47
53
54
40
51
48
50
44
41
36
38
35
40
30
30
25
30
23
24
21
20
13
23
24
23
15
21
14
18
16
12
14
14
10
12
9
10
10
12
3
7
4
4
2
6
4
3
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
26
30
29
37
35
23
31
30
37
31
30
37
32
36
33
31
33
33
33
35
37
36
31
27
28
34
32
29
30
33
39
35
28
28
28
33
36
32
30
33
30
35
28
22
30
36
28
28
30
29
30
27
33
29
31
26
34
38
30
34
36
33
39
40
38
41
44
40
46
45
49
47
57
60
60
55
63
54
57
58
60
65
56
57
60
51
65
60
62
114
147
0
35
48
39
52
43
45
47
47
50
42
51
55
45
46
41
49
51
49
49
42
46
39
43
37
31
28
27
31
29
21
22
23
22
24
28
18
21
15
19
15
16
20
14
23
11
5
12
12
15
12
10
6
9
5
8
6
6
5
2
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
19
18
27
25
30
34
23
28
21
34
27
31
31
32
39
35
28
29
32
30
29
37
38
34
26
25
32
33
32
28
30
32
34
34
33
27
29
30
32
27
31
26
30
35
29
26
27
31
28
33
30
31
25
27
30
34
32
26
34
36
36
40
44
42
44
43
40
49
46
50
54
49
57
57
54
57
59
51
55
52
58
55
46
55
52
50
66
45
63
90
0
3
56
45
44
49
44
54
47
47
47
46
55
44
47
49
51
49
50
48
50
43
39
40
35
29
38
27
26
25
28
25
27
23
24
21
22
25
16
20
16
15
17
13
21
10
13
14
8
9
9
6
9
5
5
5
5
1
5
2
3
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
36
33
29
33
31
34
37
33
26
26
37
26
35
30
31
26
35
31
27
27
32
27
34
39
40
36
31
33
31
34
28
37
40
32
29
28
27
32
27
35
28
26
28
26
26
42
32
28
30
27
32
34
35
32
31
32
26
37
38
39
40
38
38
37
35
40
45
45
51
47
47
54
54
54
53
53
48
49
53
54
51
52
46
51
46
59
59
41
71
58
0
30
71
45
52
47
45
49
45
45
50
51
55
47
55
50
57
52
46
50
50
44
41
45
39
33
28
29
32
29
22
22
22
23
23
25
22
16
20
13
20
15
19
20
12
15
11
9
14
14
10
14
5
7
6
7
3
9
6
3
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
37
33
30
29
33
28
31
27
39
21
26
34
26
32
30
38
31
36
37
38
34
36
30
32
35
36
39
38
38
35
36
24
29
30
33
34
30
28
35
24
34
43
33
31
36
21
33
29
29
33
29
28
28
35
36
33
38
31
33
31
31
39
38
42
42
44
50
46
42
49
52
56
58
55
55
55
46
53
54
48
52
44
51
56
45
52
45
48
62
5
0
58
66
48
59
53
48
58
49
54
52
56
52
51
49
48
52
46
49
46
39
44
39
31
28
34
31
29
29
27
26
26
23
25
24
21
17
21
16
19
14
20
13
14
13
9
10
12
10
8
11
6
8
5
7
5
3
4
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
31
32
31
31
32
35
29
35
31
42
26
29
31
29
27
26
31
30
36
33
30
30
34
35
35
38
33
37
36
33
30
35
36
32
28
27
32
33
30
36
30
25
35
31
24
20
30
35
39
31
30
33
37
35
33
37
37
37
34
30
35
35
37
33
43
46
46
49
52
52
55
60
59
59
51
58
48
58
54
50
53
49
48
46
47
52
43
47
51
0
0
100
65
51
59
49
53
53
48
58
48
56
45
50
55
46
47
46
48
48
45
39
35
34
37
33
29
34
30
26
23
24
23
22
23
18
23
17
16
18
14
17
19
14
13
8
9
10
11
8
8
5
7
8
4
2
8
4
3
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
29
33
29
32
32
33
31
35
29
31
38
34
35
34
32
31
29
26
23
35
38
31
29
28
29
32
38
34
41
38
39
39
30
39
38
34
28
29
30
28
27
28
26
35
39
47
33
31
27
34
35
35
33
26
33
32
38
38
39
42
40
33
36
40
40
41
39
41
47
50
55
59
58
57
64
52
52
53
47
56
55
48
56
48
49
54
40
53
38
20
67
111
52
57
60
46
59
47
52
51
44
53
46
54
46
53
48
42
45
43
45
39
38
35
30
34
34
31
25
26
25
22
27
24
19
21
19
14
20
10
20
14
13
11
10
13
14
11
8
15
6
7
3
4
4
6
5
2
1
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
30
27
32
26
25
32
38
25
36
31
30
31
28
35
36
34
33
34
35
27
32
37
36
35
36
28
26
32
29
38
37
31
27
30
31
35
39
36
36
40
40
36
33
33
35
24
31
35
35
35
35
33
28
38
32
36
33
38
32
44
38
45
35
41
47
44
47
49
50
54
59
56
56
49
57
56
60
60
56
57
48
51
55
44
55
54
47
65
30
48
94
81
45
57
49
48
51
42
52
43
53
46
44
42
38
49
43
51
49
49
42
34
36
35
37
27
29
26
29
21
24
25
21
22
17
19
16
20
13
21
17
19
13
11
11
10
8
11
12
4
6
6
8
5
3
5
3
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
32
36
33
30
30
27
29
34
26
31
32
27
36
25
27
35
35
32
34
36
33
38
33
31
30
37
37
34
34
31
36
45
41
38
39
39
36
35
35
34
33
36
38
33
30
50
38
32
35
31
36
37
43
41
39
34
38
35
47
40
42
35
38
46
42
44
46
46
46
53
55
57
60
62
54
51
62
53
54
58
53
55
55
59
65
52
56
57
42
90
119
46
35
58
35
41
47
40
48
44
52
41
49
43
46
48
45
44
49
43
35
37
38
35
33
32
31
26
26
26
25
26
23
18
24
17
16
15
16
18
14
13
9
10
12
14
13
11
8
7
7
6
4
4
7
5
2
1
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
35
29
32
34
29
30
30
36
33
28
31
34
26
38
35
30
32
40
27
24
27
31
39
39
39
31
33
33
38
38
40
32
43
38
35
37
33
34
33
33
33
32
33
32
35
22
34
36
30
37
30
34
34
33
37
41
33
37
30
32
36
41
48
43
38
43
48
51
56
58
55
61
51
54
55
54
53
51
58
54
54
56
51
57
61
52
70
65
65
117
149
0
24
41
29
48
40
47
46
44
51
48
45
45
49
44
42
52
46
38
40
45
37
35
35
32
28
29
17
28
25
23
16
20
16
18
16
15
16
16
17
9
13
13
9
8
9
5
7
8
5
6
6
4
5
3
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
32
33
34
34
37
27
30
29
40
38
32
35
28
24
29
29
29
23
40
34
31
29
33
32
33
39
33
40
33
40
32
37
30
32
36
31
33
31
35
31
34
40
37
42
36
29
33
35
39
28
34
32
34
38
34
36
40
37
39
36
39
47
50
41
49
49
53
55
55
51
55
55
53
54
48
54
56
52
56
52
51
60
52
60
56
53
68
50
71
94
0
3
46
33
36
52
34
49
46
48
43
44
44
47
51
46
50
52
38
45
40
35
32
35
27
31
24
24
28
22
26
21
24
18
18
17
15
15
20
14
9
13
10
9
10
7
10
11
5
5
7
5
3
6
4
2
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
28
32
25
28
28
35
29
32
23
24
29
27
37
31
33
37
35
32
26
34
31
29
27
34
33
33
40
31
38
29
38
36
43
36
31
36
38
38
36
34
33
30
37
35
34
46
34
35
33
40
38
42
41
37
38
39
40
42
40
43
44
41
36
45
48
53
42
48
52
58
64
46
51
54
53
55
52
57
55
48
54
52
52
58
53
56
54
44
67
53
0
20
59
34
44
47
50
53
44
51
48
46
48
50
44
48
53
42
51
43
38
41
38
33
29
28
28
19
25
28
19
20
17
17
16
13
13
20
14
13
13
10
14
10
11
14
8
6
7
3
5
3
5
5
2
2
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
36
33
39
35
33
31
31
27
33
40
31
27
33
34
29
30
31
39
33
33
35
30
31
34
29
28
28
29
27
38
33
34
34
40
38
29
32
39
28
37
35
33
27
30
35
24
39
37
39
40
40
34
32
39
45
36
38
35
37
39
40
39
46
47
47
43
59
61
64
59
56
57
57
53
53
53
50
51
49
52
52
50
56
53
44
59
52
47
65
7
0
40
50
40
60
42
45
47
47
52
47
42
49
49
55
46
48
47
45
41
43
37
30
28
29
25
25
29
28
23
23
20
19
14
14
16
20
16
14
14
11
13
7
11
10
6
7
5
7
10
5
5
6
4
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
42
38
33
33
33
33
34
36
35
28
37
36
25
33
29
31
33
31
36
31
36
37
29
22
36
35
33
39
39
25
33
34
33
30
34
41
31
28
37
32
35
37
33
34
34
49
32
34
38
37
42
35
40
35
32
36
36
36
39
44
34
38
41
43
45
50
49
47
53
62
57
53
52
49
52
58
53
54
53
47
53
46
51
51
46
51
37
44
48
0
0
75
57
43
55
44
51
49
50
49
44
54
50
51
49
47
51
54
41
39
32
29
35
28
32
24
22
30
23
20
19
16
14
19
19
18
18
14
15
10
13
9
13
11
9
13
6
7
6
2
3
4
4
1
1
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
31
32
29
32
37
33
32
27
24
35
34
34
36
30
35
31
32
35
37
36
29
31
34
39
32
41
34
29
30
41
33
36
32
41
39
37
46
38
42
41
38
33
41
35
35
23
38
36
30
33
27
40
33
31
37
37
37
45
46
39
45
45
47
48
47
50
54
55
57
56
46
57
60
57
60
56
45
55
48
49
51
49
54
47
52
50
38
51
36
8
38
99
40
47
50
48
59
50
48
48
46
50
47
49
48
51
45
42
43
41
39
31
34
32
26
28
32
24
26
20
16
15
18
16
16
17
14
15
10
11
11
11
11
11
9
2
7
5
4
4
4
7
3
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
26
35
40
31
27
35
31
38
34
30
32
38
30
29
29
30
32
26
27
36
41
36
37
31
34
26
39
36
37
33
34
31
43
38
45
43
38
42
30
34
33
33
33
31
34
31
33
37
40
34
39
36
45
42
41
42
40
37
37
46
48
51
47
52
53
53
48
57
53
53
55
58
53
54
59
47
63
56
49
61
53
54
53
44
55
46
39
51
16
29
66
69
34
61
50
47
51
47
55
48
52
56
48
52
42
48
51
39
39
39
34
35
24
31
26
28
25
22
17
19
16
22
21
16
15
17
19
11
13
15
10
12
10
7
8
5
6
8
5
6
7
4
1
1
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
29
26
31
36
39
32
36
29
35
30
26
26
39
35
30
34
29
37
34
32
33
41
35
37
31
34
30
40
33
35
39
43
31
37
35
40
39
40
41
32
39
40
35
41
34
46
40
37
33
38
40
40
33
42
42
38
44
42
42
37
45
49
50
51
53
54
58
53
56
52
53
56
52
55
51
56
58
56
56
55
52
58
56
50
50
42
52
55
29
65
102
41
35
56
45
52
53
45
53
46
43
39
45
46
46
49
44
45
41
35
37
36
32
29
28
27
23
16
20
15
20
16
13
19
18
16
10
13
12
7
11
8
8
8
5
11
6
3
4
3
3
1
3
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
33
30
32
35
26
30
33
35
34
32
37
35
34
38
33
31
35
31
33
30
32
25
34
35
38
36
36
29
38
37
38
31
41
35
34
37
37
34
38
45
33
37
38
33
36
28
33
34
43
40
35
30
38
36
32
37
37
39
47
46
50
46
48
48
51
55
55
56
59
51
55
53
56
54
55
55
59
41
53
56
51
55
51
54
55
50
59
53
50
100
141
0
34
48
39
54
42
45
45
42
51
45
55
44
46
49
48
44
39
34
31
29
31
24
23
21
18
23
15
20
20
18
17
15
15
13
11
11
9
14
10
12
9
7
7
2
5
4
4
6
4
3
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
28
30
24
30
37
34
29
38
31
41
32
37
32
35
42
34
34
30
32
34
36
41
35
35
34
35
36
43
36
38
36
43
33
38
35
33
41
44
46
41
42
36
33
39
38
49
34
36
32
37
37
38
34
34
35
44
45
47
41
45
47
50
49
51
55
52
55
63
54
54
59
52
53
59
52
53
50
50
54
45
51
52
48
57
52
45
55
38
57
85
0
2
51
47
42
50
40
51
46
46
52
51
48
48
53
46
46
40
41
39
32
31
30
25
27
19
21
20
18
16
16
15
16
16
17
11
15
11
13
7
9
4
6
7
6
9
4
6
6
6
2
1
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
28
31
34
30
31
31
37
27
34
26
36
27
32
32
35
37
32
37
31
32
28
30
32
32
37
38
31
32
40
35
33
36
38
40
40
41
36
38
32
38
45
42
47
38
40
27
40
39
39
32
41
45
42
41
45
43
39
42
44
51
40
41
54
55
52
58
57
58
59
62
54
54
57
58
52
54
48
56
50
48
51
53
44
51
40
45
53
37
58
53
0
26
70
43
52
52
45
52
45
55
53
50
54
48
51
56
41
43
39
30
34
25
19
24
18
26
23
18
20
19
17
16
17
16
9
15
11
11
8
10
9
11
7
6
6
3
4
3
4
1
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
36
30
31
29
31
28
22
30
34
30
30
35
31
31
30
35
35
30
32
33
31
33
38
41
33
34
40
34
33
41
43
37
40
33
38
35
34
34
40
35
39
41
37
40
38
56
37
38
39
44
33
36
41
43
40
42
44
44
49
42
49
50
50
47
51
56
60
54
53
55
60
57
56
49
57
58
49
48
51
47
51
42
48
47
39
47
44
39
57
7
0
57
67
46
56
44
53
60
55
55
46
51
45
49
55
40
43
36
32
31
25
26
28
24
26
20
18
19
19
18
18
17
15
14
17
11
9
12
11
10
7
8
6
6
6
6
6
6
4
1
1
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
38
34
32
35
28
40
40
33
24
33
26
28
29
31
31
32
35
35
36
31
38
32
34
35
41
37
37
38
37
32
38
39
43
43
39
40
39
37
41
41
36
37
37
43
42
30
44
42
36
40
50
42
40
42
41
41
46
44
46
51
52
53
45
55
57
51
54
60
51
55
56
57
59
56
56
51
47
52
49
55
55
45
50
43
44
51
37
38
47
0
0
93
63
52
68
54
59
54
49
53
50
55
49
53
45
44
39
34
27
27
26
25
25
21
20
22
19
18
18
18
11
16
15
12
14
10
11
8
8
6
8
6
7
4
3
4
4
3
1
3
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
30
37
30
27
38
28
36
33
38
34
37
34
35
33
30
31
34
39
39
43
37
39
31
32
32
35
39
35
33
38
33
36
36
36
35
34
40
37
32
37
36
39
46
37
43
30
40
35
41
39
31
43
46
47
48
42
40
50
48
48
48
52
59
54
52
60
52
49
60
60
54
56
54
52
54
53
55
55
50
50
52
50
53
44
47
54
35
50
39
21
65
114
56
59
60
50
61
46
50
50
45
44
44
46
48
43
39
35
29
28
30
28
23
25
25
19
22
21
20
13
20
15
16
16
8
12
11
9
9
10
8
5
4
5
4
2
5
4
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
27
29
34
35
27
30
30
36
29
32
34
34
35
36
36
34
33
30
32
29
28
36
39
33
34
38
29
36
37
36
36
34
32
34
39
45
42
46
41
35
40
43
36
45
36
57
37
47
46
38
45
44
42
41
50
50
52
46
47
50
52
52
47
56
52
50
61
60
60
56
52
58
55
55
55
47
47
52
51
53
45
51
49
43
50
48
42
57
31
49
90
81
43
60
46
45
53
42
48
41
48
48
42
42
43
39
32
27
31
29
25
25
26
24
19
19
17
18
14
16
13
16
14
8
12
12
8
11
7
7
7
7
7
4
6
7
4
1
1
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
37
29
35
31
35
33
27
32
37
33
32
31
34
29
32
39
37
38
31
36
38
29
33
34
36
34
40
38
38
32
34
32
31
35
34
31
32
41
48
45
40
40
45
44
48
27
44
40
39
44
40
42
41
43
37
49
46
52
56
45
49
53
52
50
61
56
58
53
51
55
55
54
53
56
50
56
60
51
55
59
51
53
50
50
64
47
55
61
45
87
117
43
34
57
37
50
40
41
44
43
44
41
47
50
43
35
34
33
33
28
25
25
23
21
21
20
20
15
13
17
17
12
11
12
12
8
10
7
10
7
5
4
4
6
4
3
1
3
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
34
37
28
33
28
34
39
33
33
34
32
35
28
38
31
27
30
34
39
33
33
36
34
36
33
34
36
34
30
38
36
39
35
41
44
43
40
32
40
44
47
43
43
40
43
66
41
42
44
43
44
41
48
45
51
45
51
49
40
55
53
49
57
54
54
65
55
55
59
51
54
53
52
53
49
46
56
51
52
52
51
58
48
57
55
48
60
64
64
111
144
0
27
38
34
48
41
43
46
42
44
39
46
44
37
39
34
32
26
32
28
22
21
23
19
17
16
14
19
15
16
15
10
13
7
6
8
9
7
5
5
6
6
5
4
4
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
35
35
36
30
34
28
26
29
32
33
32
30
33
28
41
34
32
29
31
36
37
33
35
36
33
30
30
37
41
37
35
40
50
36
36
35
49
47
39
41
39
45
38
44
39
28
44
39
38
46
45
45
45
46
49
49
47
47
56
47
47
52
52
57
60
59
56
63
60
56
58
51
52
52
50
51
50
47
57
51
51
53
51
58
56
49
65
50
64
90
0
3
47
40
42
48
41
46
49
43
48
44
48
46
40
34
30
35
34
25
21
27
25
17
17
17
15
15
13
17
12
9
13
9
8
11
10
7
6
5
5
3
2
4
5
1
1
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
31
34
33
36
31
33
33
40
26
34
36
35
34
29
32
37
34
33
32
35
31
38
31
32
34
39
31
31
37
37
42
37
33
41
46
46
38
49
43
43
48
34
40
35
41
33
47
48
48
46
47
48
42
47
41
45
52
44
49
53
53
51
58
53
56
55
62
58
49
58
60
55
53
53
46
51
50
55
54
47
54
47
50
57
45
50
57
41
68
53
0
22
62
41
42
46
43
55
40
47
50
50
49
46
35
43
35
26
25
24
28
20
18
19
18
17
16
21
16
16
10
14
9
9
10
9
7
6
5
6
5
6
5
3
1
2
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
40
34
39
33
35
32
35
29
40
29
27
36
33
41
26
30
34
34
30
26
33
31
37
37
39
33
41
32
33
39
40
40
41
46
36
43
42
30
38
44
39
47
41
41
40
51
42
49
50
43
46
43
46
45
47
49
38
53
51
52
58
57
57
61
64
57
55
59
57
59
57
55
58
44
55
54
49
54
47
46
49
48
51
49
43
53
48
44
58
5
0
45
60
34
60
51
45
47
42
50
39
50
49
42
45
28
33
30
28
24
22
23
18
18
17
20
17
12
16
7
12
9
10
8
9
9
7
4
5
6
5
5
4
4
3
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
37
39
33
38
35
36
28
28
31
35
40
26
33
26
38
34
36
35
40
34
30
30
32
29
31
36
35
44
36
35
32
34
32
32
36
35
35
46
43
41
36
43
43
41
42
32
40
39
42
47
45
47
50
49
50
43
49
50
48
55
57
58
59
65
52
55
59
50
57
60
53
53
54
54
53
52
45
52
50
52
52
46
49
48
41
53
36
47
49
0
0
81
49
51
61
42
50
48
43
55
45
49
50
39
37
35
30
30
24
25
23
17
19
17
21
15
17
17
13
15
11
11
6
9
10
6
5
7
7
4
5
4
5
1
1
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
30
34
32
29
35
33
34
35
26
33
29
39
36
38
28
25
29
33
34
38
39
37
29
37
37
36
40
33
38
32
37
38
42
36
41
34
38
28
32
35
47
35
47
51
44
63
46
50
45
48
47
49
50
48
43
52
54
49
49
46
49
56
58
60
64
57
54
54
60
55
50
58
49
51
56
54
56
56
46
52
49
43
51
40
44
48
39
47
32
9
42
100
48
52
51
45
53
42
52
45
48
47
41
40
35
30
26
25
21
21
21
21
21
23
14
14
14
14
13
10
10
5
10
10
7
6
5
5
4
6
2
2
2
3
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
26
28
39
40
33
41
35
36
33
26
34
31
31
33
33
36
29
29
34
37
36
36
40
33
34
37
33
36
33
40
36
36
39
41
34
41
37
45
40
42
37
50
42
41
49
34
46
36
47
47
49
44
47
47
56
51
53
48
59
59
54
60
54
55
55
64
60
55
52
45
51
55
50
53
53
51
54
56
56
53
50
51
52
42
51
47
43
50
21
33
76
73
37
62
49
44
53
42
53
43
48
50
42
35
30
31
29
22
28
25
19
19
21
14
17
17
15
10
11
11
11
12
10
8
6
4
5
6
5
3
5
4
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
32
31
31
32
36
27
38
31
41
33
25
32
30
32
40
39
33
35
29
30
38
37
39
36
34
32
33
39
41
33
34
37
31
33
39
34
36
37
43
37
43
40
42
46
42
67
41
55
44
45
46
53
46
51
51
55
48
57
50
53
61
54
59
57
53
51
54
59
57
54
55
50
47
55
52
55
63
46
51
55
46
59
53
48
51
47
50
59
32
75
108
41
37
56
39
47
42
43
48
40
46
48
37
33
30
22
26
30
22
21
23
22
17
16
16
13
13
12
10
10
8
9
9
6
5
8
7
4
3
4
4
1
1
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
30
28
26
33
34
37
33
37
30
39
37
28
36
33
31
36
38
31
36
35
29
34
33
38
33
35
37
33
36
42
41
34
42
35
38
45
43
43
39
42
38
38
43
44
49
32
52
37
47
41
50
47
56
52
50
51
56
59
54
54
55
56
63
56
59
61
52
54
52
55
57
45
46
53
51
49
48
47
51
49
48
52
46
51
62
49
60
53
57
104
139
0
33
42
33
48
37
47
40
45
53
40
40
34
29
32
28
23
25
23
20
19
12
14
13
17
9
11
11
10
9
9
6
5
5
6
4
6
4
4
2
3
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
31
29
31
28
32
33
32
38
34
34
40
35
29
35
35
27
35
38
32
34
37
33
38
32
37
33
30
35
35
37
36
38
35
36
34
34
40
36
44
42
42
44
46
44
42
33
45
55
42
50
45
46
39
47
53
52
61
52
57
60
55
60
51
56
55
50
60
56
56
50
50
50
54
49
46
52
54
51
53
42
53
48
42
52
49
47
60
42
57
85
0
3
51
40
38
53
40
45
44
48
49
42
32
32
29
34
26
28
22
20
18
13
15
16
14
6
13
13
10
8
9
6
5
6
7
5
7
3
4
2
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
35
35
30
33
27
33
32
25
33
28
27
34
33
26
34
33
31
32
33
35
28
31
31
40
37
37
37
33
31
33
40
39
38
46
37
37
35
39
39
38
45
46
44
46
46
63
47
40
50
50
45
47
53
52
45
52
45
56
66
63
61
57
61
55
58
60
52
55
50
57
47
50
58
51
54
52
45
46
46
46
48
51
42
55
45
50
54
36
61
53
0
26
64
42
48
43
44
53
46
51
45
41
37
31
34
25
27
19
20
17
15
16
15
13
13
16
11
10
7
9
6
6
7
7
6
5
3
3
4
3
1
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
31
33
33
27
37
28
30
35
35
35
35
35
32
36
35
36
33
35
29
27
33
34
28
26
35
36
39
34
34
31
29
40
34
34
39
34
41
40
36
42
39
38
38
41
52
34
45
53
51
46
50
49
49
47
61
51
56
53
50
51
59
62
61
55
58
52
52
52
53
49
51
54
54
53
54
58
47
52
47
49
50
39
48
50
42
53
39
38
57
6
0
55
60
44
58
43
49
50
49
52
50
38
34
34
29
29
22
22
16
18
16
15
16
15
13
11
13
9
11
7
8
6
7
7
5
3
3
5
1
1
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
41
35
33
35
27
40
40
37
27
36
33
34
40
33
30
29
34
30
39
32
31
33
39
38
31
34
32
38
36
37
37
34
40
36
38
40
34
39
44
40
41
40
47
41
36
59
47
48
50
47
51
51
50
54
46
52
52
54
51
56
60
55
57
62
53
54
57
53
56
56
49
54
53
55
53
48
49
57
45
48
48
40
52
48
45
47
35
39
44
0
0
85
61
47
59
45
50
48
53
53
39
36
35
30
27
21
22
18
18
16
16
19
13
13
10
11
10
8
6
7
7
7
6
4
3
3
4
2
3
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
0
29
36
38
32
38
27
30
33
36
31
31
32
33
37
31
34
31
38
33
40
37
33
34
34
33
34
35
34
42
38
37
34
34
38
39
45
40
32
37
42
44
49
39
42
40
32
50
46
46
58
53
55
58
55
50
56
55
58
54
54
56
61
50
58
55
54
56
51
50
45
57
55
53
49
51
49
53
45
53
54
51
54
55
43
46
46
33
55
40
16
58
107
52
52
51
45
61
48
45
45
36
33
28
28
25
22
18
17
18
17
16
11
16
12
14
13
7
6
8
7
5
6
6
4
3
5
3
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
27
27
28
35
30
35
31
30
33
32
32
32
32
37
38
36
37
35
40
40
40
40
32
35
37
33
39
37
33
37
37
39
42
37
39
38
42
51
45
43
40
38
39
42
48
35
40
46
52
51
54
52
55
55
61
51
55
49
52
56
53
52
52
55
55
56
55
57
54
58
54
56
53
57
62
50
50
54
47
50
46
50
51
45
54
45
42
54
26
46
87
80
39
56
42
46
48
42
48
42
34
30
27
26
19
20
21
19
18
17
16
14
11
13
10
5
6
8
7
6
8
7
2
3
4
3
2
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
31
32
34
30
29
30
36
35
34
37
33
35
32
28
36
36
32
30
28
32
35
30
36
35
38
42
35
42
37
36
38
39
32
40
43
37
43
39
38
42
40
37
48
45
43
60
47
51
53
50
50
57
47
54
49
59
54
55
64
66
60
56
59
55
57
59
56
55
50
51
52
52
53
60
51
53
58
51
56
58
54
55
53
50
53
43
53
55
40
82
109
40
29
50
35
41
39
41
43
33
32
28
30
21
24
21
18
20
17
15
11
12
14
11
9
6
8
8
6
8
7
3
4
3
4
2
1
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
0
0
0
45
36
31
37
36
29
30
33
32
35
39
32
33
34
30
37
40
35
32
29
29
41
37
35
36
34
35
32
38
39
37
33
43
37
37
45
40
37
38
36
42
48
38
48
41
33
49
45
47
54
53
47
55
49
54
51
55
60
60
57
59
59
58
55
54
51
48
52
58
54
57
57
57
53
47
51
49
46
50
50
45
56
48
54
52
46
62
61
58
106
142
0
26
36
31
51
42
37
47
39
32
33
25
24
21
19
22
18
14
12
16
14
10
9
5
9
9
7
7
7
2
4
3
5
2
2
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
0
0
0
0
25
31
31
27
31
33
32
35
34
29
33
31
32
35
32
28
28
39
35
37
39
33
35
37
36
34
36
35
35
36
38
38
36
41
35
37
42
45
42
42
40
40
46
39
50
65
47
48
46
46
49
55
55
55
62
52
62
65
69
63
65
61
63
56
63
58
61
55
52
53
59
47
53
46
48
53
51
52
51
47
51
53
48
50
49
51
58
43
63
88
0
2
42
36
38
46
37
54
39
35
35
31
27
26
23
22
16
11
16
16
14
10
9
4
8
8
7
7
7
2
5
2
5
2
3
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
0
0
0
0
0
51
41
42
36
34
37
31
33
36
34
32
41
33
28
33
31
36
25
38
31
30
35
36
36
35
41
38
37
35
34
37
41
41
36
40
40
38
45
40
44
44
38
44
52
46
35
49
47
50
47
47
53
53
55
48
58
51
60
53
63
59
58
62
58
55
56
50
59
60
61
56
58
54
52
49
51
47
49
52
47
50
47
46
50
40
46
54
41
66
52
0
17
55
35
45
44
45
49
42
35
34
28
27
23
17
17
14
19
14
11
10
9
6
8
10
8
6
8
3
4
2
5
3
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
0
41
46
35
40
35
32
37
31
32
33
33
29
40
33
33
36
31
42
34
41
39
36
37
39
34
30
36
35
33
37
34
34
32
40
46
42
39
35
47
41
43
51
46
37
45
65
44
48
42
44
50
42
48
57
60
60
64
54
61
58
55
62
57
59
54
55
58
54
53
53
55
57
55
51
55
47
43
43
49
43
55
42
45
48
42
52
49
43
60
6
0
41
54
36
55
50
48
49
39
39
30
27
24
19
24
18
18
12
13
12
9
8
8
10
10
8
8
3
4
3
4
4
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
0
22
33
40
31
32
35
32
32
33
39
34
33
31
44
32
37
38
33
37
35
33
33
35
28
33
34
30
39
43
37
40
42
44
40
34
32
40
38
38
48
43
40
37
46
44
33
48
48
52
51
53
53
53
54
56
66
64
63
59
55
58
59
53
62
56
55
52
52
49
58
51
56
49
53
50
50
48
59
45
44
47
43
45
38
41
49
35
46
47
0
0
74
48
45
58
46
52
46
42
31
29
26
22
25
20
14
14
14
13
9
9
9
10
10
5
7
4
2
3
4
5
2
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
23
22
35
39
40
34
33
41
33
30
39
37
35
36
39
29
33
35
37
32
40
33
29
38
38
37
41
34
35
41
36
32
31
32
34
41
40
41
41
34
43
47
46
43
49
33
53
46
47
49
47
53
52
50
63
56
62
66
56
57
63
56
61
55
56
58
57
50
59
53
48
47
51
44
52
48
53
49
44
56
45
44
48
45
49
48
35
47
32
10
36
95
47
56
58
46
51
44
34
30
26
23
19
17
12
14
13
14
10
9
9
9
11
7
8
4
2
3
5
5
1
1
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
0
0
0
0
0
0
0
0
37
31
28
34
31
33
36
26
34
32
31
34
32
29
35
39
34
29
26
32
29
34
34
36
38
42
40
34
42
40
45
41
38
41
44
39
40
44
43
42
49
47
52
51
40
65
39
47
49
47
46
53
59
61
48
60
57
56
66
63
52
52
54
53
58
56
58
56
59
50
50
50
47
54
45
49
48
51
49
54
44
48
47
44
47
48
43
55
23
31
72
67
35
56
46
42
46
36
35
30
27
18
18
13
14
15
12
10
7
8
11
11
7
6
4
2
3
6
5
1
2
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
0
0
0
0
0
0
0
0
0
35
38
30
37
39
36
33
38
35
38
33
34
40
34
32
35
28
33
34
29
32
36
37
32
34
33
32
45
28
36
34
40
46
42
34
41
32
37
38
45
37
42
42
47
53
33
50
47
49
52
59
54
49
53
63
53
58
60
56
57
57
60
52
52
54
52
54
62
52
53
56
51
51
50
52
49
56
41
53
49
51
54
55
49
60
45
50
51
28
65
96
38
35
57
39
45
45
34
26
23
18
20
18
17
13
12
12
11
10
12
9
8
5
5
2
3
5
5
1
2
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
0
0
0
0
0
0
0
0
0
0
33
29
36
30
34
38
39
32
30
27
32
36
32
34
28
34
41
36
37
37
35
34
37
37
29
36
38
33
49
35
41
39
37
36
43
36
45
34
45
42
40
36
50
47
43
64
48
52
51
56
55
51
58
53
53
65
57
53
59
59
61
56
55
62
56
60
55
56
52
54
49
55
52
51
46
49
50
48
52
48
48
55
46
53
54
47
61
53
51
96
130
0
31
46
33
48
37
31
27
26
22
19
16
16
14
13
12
8
13
12
7
4
5
2
3
5
6
1
2
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
0
0
0
0
0
0
0
0
0
0
0
34
36
31
30
31
29
31
37
30
30
27
26
29
29
37
29
33
36
29
36
37
38
38
33
44
36
36
36
29
39
30
36
39
40
39
43
40
47
42
38
46
56
41
42
51
40
47
48
49
51
51
59
52
61
53
55
61
63
53
59
57
56
58
47
53
51
49
55
54
52
57
51
46
49
49
53
50
50
48
44
47
45
44
48
49
45
51
38
53
77
0
4
50
41
40
49
36
30
26
22
20
19
17
13
14
14
11
12
11
5
4
4
3
4
5
6
1
2
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
0
0
0
0
0
0
0
0
0
0
0
0
30
32
30
34
34
34
30
31
41
38
37
30
32
39
38
33
35
33
40
40
36
31
33
42
34
34
34
39
38
36
43
40
40
44
43
39
46
46
41
44
51
41
46
51
47
33
54
51
54
54
51
51
64
53
60
55
54
53
64
55
51
60
62
55
58
52
62
51
50
54
54
44
56
46
46
52
45
50
47
44
47
45
42
51
41
44
55
33
55
50
0
28
66
42
44
46
37
32
28
23
18
14
13
14
13
11
9
10
4
3
4
4
3
4
6
1
2
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
0
0
0
0
0
0
0
0
0
0
0
0
0
29
26
34
29
29
38
40
38
32
36
36
42
38
32
35
42
36
40
37
31
35
38
34
30
37
36
39
34
42
40
39
42
41
39
43
46
42
38
41
53
39
43
48
40
45
71
44
52
51
49
54
54
49
51
61
53
50
58
54
53
56
56
56
59
54
57
51
49
52
53
46
54
48
47
54
48
43
49
43
47
47
42
46
47
34
51
39
36
50
5
0
51
63
40
56
39
35
30
28
18
20
18
20
15
13
8
10
4
6
6
4
3
5
6
1
3
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
49
42
31
36
35
29
33
28
34
34
35
34
35
34
34
35
38
33
35
41
38
39
40
41
34
38
35
39
33
41
38
34
30
40
39
44
39
44
46
35
40
47
42
49
45
27
50
52
57
51
53
57
55
65
57
63
65
56
49
53
58
54
52
62
53
52
57
54
54
55
49
46
49
49
56
45
48
44
46
45
47
43
49
44
42
47
29
38
43
0
0
88
61
47
55
40
37
28
21
21
18
17
12
9
7
9
3
6
3
4
3
5
5
2
3
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
19
34
37
30
31
34
31
42
31
29
33
31
32
36
30
30
32
37
39
35
32
31
36
37
40
41
42
41
38
35
44
44
51
43
42
39
46
47
50
48
43
40
39
43
45
67
53
54
47
57
53
54
58
54
54
56
56
60
57
59
58
55
49
51
55
59
50
48
51
44
49
53
50
55
51
48
51
56
50
51
44
39
50
40
47
44
35
45
36
19
62
107
48
48
50
41
27
24
21
17
15
13
8
7
9
4
6
4
4
5
7
5
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
0
0
0
0
0
0
0
0
0
0
0
48
33
38
40
37
36
37
33
41
41
30
36
31
32
33
34
33
28
26
35
38
43
36
39
37
40
41
28
38
34
31
36
32
35
42
41
44
46
36
44
47
38
43
40
45
38
50
44
49
53
62
54
58
58
57
58
53
52
56
56
57
52
56
54
54
54
53
57
52
45
52
52
49
53
47
52
52
50
49
52
47
58
50
43
51
43
36
49
24
40
81
76
38
56
43
32
26
20
14
14
10
7
6
9
3
5
4
5
5
6
4
2
3
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
45
46
35
34
32
31
34
35
34
37
43
36
40
32
36
39
36
44
45
33
37
32
38
34
39
30
29
47
37
43
36
40
46
44
42
47
45
38
39
40
44
50
47
46
46
27
44
48
52
51
45
57
51
56
60
53
59
57
62
61
50
50
54
51
55
52
52
47
47
51
52
42
45
50
46
49
49
44
49
53
51
53
48
49
53
45
51
55
39
85
112
42
32
52
34
26
17
15
10
10
9
7
9
5
8
5
5
4
6
2
3
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
30
36
38
35
34
34
28
31
33
32
37
36
38
44
35
37
37
34
39
46
41
37
33
36
35
38
39
34
39
35
46
36
34
40
42
39
38
42
49
46
42
47
53
50
48
68
48
48
46
44
50
51
56
53
52
60
54
51
53
51
53
58
54
58
54
53
51
54
55
54
51
49
48
46
46
46
52
46
57
44
46
48
45
52
53
45
55
59
61
107
141
0
21
32
23
16
15
10
14
9
8
7
5
6
5
6
7
7
3
3
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
39
35
39
40
40
40
40
40
42
39
33
38
35
38
43
36
40
38
29
29
31
39
38
34
35
37
36
37
37
38
33
48
40
44
41
40
38
39
39
40
48
44
42
42
49
36
41
45
48
50
53
54
49
55
51
47
53
61
56
47
48
60
61
46
53
46
47
54
46
55
49
46
53
46
43
49
46
44
42
45
51
54
47
50
50
46
59
43
67
86
0
2
41
32
24
19
14
15
11
10
7
9
8
6
6
7
4
3
3
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
36
43
39
39
36
31
35
29
27
30
35
34
32
28
37
34
31
35
36
35
39
33
38
36
32
32
35
36
40
43
42
30
43
32
32
35
46
43
42
52
46
51
46
57
50
65
56
51
47
52
51
49
59
59
61
62
53
47
55
58
61
51
49
60
49
52
54
48
50
43
45
54
54
47
54
53
44
49
48
45
49
45
45
54
41
47
52
41
64
53
0
17
53
32
22
19
15
12
10
9
8
7
7
8
6
4
3
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
32
28
37
35
39
42
36
38
39
37
38
32
37
34
30
35
35
32
39
33
29
35
33
42
43
45
41
41
39
39
41
43
41
42
42
43
34
47
48
39
40
43
53
47
49
38
47
50
53
55
52
56
49
45
46
47
54
56
42
52
53
53
55
51
49
47
51
48
48
52
50
52
53
51
51
48
49
53
47
44
46
40
44
44
36
44
43
45
58
6
0
34
47
30
22
18
14
10
8
9
10
7
7
4
3
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
31
33
31
38
35
36
38
37
35
34
32
42
38
40
33
35
39
34
30
39
41
37
40
35
40
35
43
41
41
37
38
41
43
41
39
40
47
34
41
38
41
37
39
47
44
70
50
50
57
52
54
53
63
53
55
47
49
53
50
48
50
45
51
43
47
54
52
48
53
44
46
55
47
51
54
50
51
50
43
49
49
42
49
43
38
47
39
42
45
0
0
64
47
29
22
13
13
12
10
8
7
5
3
3
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
32
35
34
34
38
35
33
33
30
37
30
32
31
34
37
31
29
36
37
34
39
39
36
36
37
40
34
41
42
44
40
36
30
37
42
41
36
43
39
46
48
57
53
43
43
33
43
52
47
51
52
49
42
54
53
56
52
45
53
56
49
44
43
50
45
48
46
46
49
51
58
51
44
48
49
41
48
48
44
48
40
45
47
35
41
48
32
48
30
5
26
89
40
27
19
16
13
9
9
6
3
3
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
0
29
27
32
28
32
32
34
31
34
31
42
29
37
36
37
38
39
42
42
39
31
38
38
39
37
41
43
35
33
36
37
43
41
41
43
43
42
42
44
45
48
40
38
42
50
29
55
56
59
50
52
54
49
51
55
51
51
51
54
46
46
59
42
45
49
50
42
51
44
47
45
47
48
51
49
54
46
45
49
49
46
43
48
40
47
42
42
48
17
23
60
71
35
21
14
11
7
7
3
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
33
31
27
39
34
38
37
40
37
32
28
39
28
31
36
40
37
31
34
34
40
34
34
37
38
38
39
39
42
36
42
40
43
46
44
39
45
45
48
43
41
39
43
51
51
70
50
46
44
56
53
55
58
54
39
47
47
49
46
49
51
44
52
50
51
41
48
46
47
48
45
38
43
47
45
45
53
45
52
49
43
56
46
46
54
43
51
50
26
63
95
36
15
9
6
3
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
44
40
39
29
33
34
35
31
33
38
30
34
39
33
24
31
34
36
33
38
34
39
41
42
39
32
32
38
33
41
39
37
51
42
42
45
41
44
40
43
42
48
43
44
40
38
47
53
53
53
62
55
55
53
58
56
54
48
56
47
46
45
51
45
52
48
44
45
45
43
44
48
48
53
45
48
42
41
43
44
44
48
39
47
48
42
52
45
45
87
132
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
30
35
34
34
33
34
34
37
37
37
44
34
40
39
47
34
33
35
37
35
41
35
38
31
37
40
40
36
43
40
39
42
34
40
40
44
47
42
40
43
44
47
49
45
48
64
46
47
50
45
46
50
53
50
54
47
46
52
45
47
48
48
43
47
42
41
47
47
44
48
46
48
54
40
40
44
44
44
46
40
50
43
39
45
45
44
52
36
49
81
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
37
34
31
40
37
35
39
40
38
35
35
37
33
36
33
31
32
31
32
39
35
40
36
42
38
40
36
42
38
39
40
43
40
39
40
44
43
47
50
51
48
40
45
41
49
35
55
53
53
61
51
54
52
47
44
54
50
51
48
49
49
47
44
43
37
46
45
40
47
47
47
45
40
46
47
40
40
45
42
39
46
39
40
46
39
44
46
33
54
48
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
40
40
41
27
35
36
34
31
39
37
32
36
33
36
45
44
44
42
37
30
35
34
35
37
37
39
46
38
44
41
40
36
34
38
43
36
37
43
45
43
45
50
47
55
50
34
50
49
53
53
50
50
39
46
46
41
49
47
43
43
41
37
45
41
45
42
49
43
44
46
40
45
45
38
42
42
41
44
42
44
43
34
43
46
40
46
38
32
52
6
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
32
32
36
37
31
31
32
32
28
32
39
29
34
36
35
39
34
36
40
38
32
36
37
34
37
34
35
41
36
41
40
42
42
41
39
46
45
39
38
44
44
49
51
46
53
76
51
53
52
49
55
48
56
52
57
49
47
47
46
46
44
43
42
44
40
45
33
45
45
40
40
39
42
39
40
38
39
43
35
45
35
39
47
40
38
42
27
36
41
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
31
35
30
39
34
35
34
40
39
40
34
43
36
32
33
32
39
40
37
37
39
36
35
36
39
43
36
38
40
32
42
38
50
42
44
39
44
43
42
41
48
42
44
53
49
33
52
50
52
46
39
45
45
50
37
49
48
38
44
43
39
45
41
42
49
49
47
43
44
39
48
46
37
45
40
39
40
37
42
41
41
38
39
35
33
39
25
39
27
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
34
37
38
30
34
34
36
29
36
30
37
36
42
42
35
39
33
34
37
40
35
33
35
38
34
32
39
35
37
44
31
41
38
44
39
47
43
43
44
44
46
46
50
48
46
71
49
54
50
50
54
47
43
43
48
45
46
50
42
45
43
48
43
47
46
38
41
43
40
42
42
44
40
38
36
39
45
38
40
36
35
40
38
30
42
31
29
36
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
38
30
39
40
41
34
34
39
34
40
37
32
32
33
33
32
42
33
35
37
42
39
35
35
32
39
35
39
37
40
47
40
44
38
46
38
39
44
43
45
42
48
48
48
52
38
51
50
45
47
47
45
50
45
53
50
42
43
46
39
46
42
41
41
39
39
44
46
38
47
49
36
40
39
37
44
39
39
39
36
35
39
36
36
38
23
28
27
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
43
41
32
36
31
40
34
34
39
37
32
38
33
34
35
35
30
41
29
31
37
43
42
35
42
34
39
38
36
39
44
45
32
47
41
44
43
40
48
44
45
47
48
49
49
64
49
47
47
46
48
48
52
49
45
38
43
41
40
42
47
47
43
46
44
47
46
42
43
44
38
37
42
41
43
40
35
36
38
37
30
36
28
31
32
24
32
19
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
40
44
39
36
42
32
37
33
28
31
39
33
36
37
37
35
35
30
43
38
30
30
36
45
33
39
35
34
39
36
32
42
42
35
37
36
44
47
47
46
51
45
43
45
43
34
47
49
48
52
46
51
45
47
43
44
41
46
41
42
39
35
49
46
43
43
40
36
44
42
34
37
36
35
34
35
38
35
35
32
38
34
30
35
26
22
25
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
25
29
38
37
34
37
35
37
38
34
33
37
40
32
32
35
33
39
37
41
40
40
40
33
44
33
40
43
43
38
39
31
36
43
39
44
41
47
42
46
41
50
51
48
47
34
52
38
44
40
46
48
44
43
42
41
45
37
45
46
45
46
47
37
35
36
38
42
40
36
36
37
37
34
39
36
33
34
33
30
35
35
28
30
19
22
21
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
27
29
33
32
35
35
35
36
39
38
33
35
32
42
39
40
42
36
39
38
39
39
36
40
34
43
36
38
34
43
42
41
45
36
43
48
45
40
45
45
44
42
45
46
52
67
37
51
51
47
45
37
38
45
45
43
39
42
39
39
40
40
39
36
41
43
39
39
40
35
38
38
36
33
37
31
33
37
31
32
34
24
30
31
20
25
14
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
38
33
31
38
39
39
33
32
30
40
42
36
36
32
41
35
37
33
28
32
38
33
35
35
40
39
44
34
42
37
38
39
37
45
46
40
43
43
43
43
53
47
43
44
45
33
51
45
42
43
43
46
51
44
38
39
42
40
44
45
37
42
36
39
38
40
40
40
38
33
34
36
31
33
35
32
34
35
32
32
31
26
30
23
20
22
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
32
30
31
30
30
33
42
33
34
28
36
41
37
37
28
36
31
41
40
36
32
41
42
41
41
44
37
49
41
42
43
42
46
45
42
42
43
40
47
46
40
46
47
47
47
64
45
48
47
52
46
45
40
36
37
46
38
40
41
38
41
34
33
40
40
37
37
39
33
34
35
30
34
40
34
34
34
34
27
33
28
25
29
16
19
16
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
37
41
33
33
35
35
38
43
32
36
28
33
41
36
31
33
38
33
42
39
43
37
37
39
37
35
45
33
37
40
42
45
43
43
40
41
45
52
40
43
44
39
49
48
49
32
45
43
44
39
41
41
42
41
46
34
42
43
42
39
40
44
36
36
43
37
40
33
33
32
34
35
32
35
31
33
29
27
28
34
23
28
26
15
20
11
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
42
35
40
37
36
31
32
36
50
36
36
32
33
41
44
38
38
38
33
37
35
39
39
38
36
39
31
41
41
38
35
43
39
37
39
42
42
44
44
49
50
54
46
46
40
33
49
45
49
45
45
43
40
38
36
46
41
39
35
42
38
36
38
41
35
38
33
36
33
37
32
30
36
31
30
33
34
25
33
25
22
28
18
18
19
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
38
42
36
39
35
40
29
30
29
39
40
37
34
36
38
45
38
39
37
34
40
38
43
42
44
40
39
42
41
42
44
38
38
41
47
49
45
32
47
45
43
44
43
49
48
67
39
44
39
38
40
40
40
42
40
39
37
43
43
36
40
36
39
35
38
34
34
30
33
34
31
35
36
32
34
32
30
29
31
22
27
23
15
17
12
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
32
31
36
30
36
37
42
40
37
39
38
40
39
37
38
37
40
41
34
42
34
36
31
35
38
39
49
42
39
37
41
37
52
49
45
41
40
51
42
39
41
45
54
45
45
33
47
39
42
46
41
41
39
39
47
38
43
38
36
37
36
35
40
40
34
34
37
31
34
30
35
35
30
29
27
32
26
27
27
22
25
22
14
17
9
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
37
41
39
40
34
35
39
33
41
37
39
35
37
35
36
34
40
40
52
40
45
39
39
36
39
39
34
37
46
48
41
42
31
37
37
38
44
47
44
45
48
44
45
44
46
59
40
49
45
43
43
38
38
39
35
41
40
39
40
41
32
35
37
36
32
34
30
35
32
33
28
32
31
31
31
31
25
31
23
25
23
17
15
15
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
38
32
35
36
36
36
30
38
34
32
34
36
33
35
35
37
33
33
31
39
32
41
38
41
34
40
34
38
34
35
39
40
41
36
37
41
45
42
43
57
50
57
41
48
42
32
44
38
35
34
39
39
36
44
40
39
40
37
34
32
37
38
36
33
35
37
30
33
29
29
34
32
26
28
34
19
26
28
21
22
22
14
18
11
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
35
38
33
34
37
30
37
32
33
40
32
39
40
39
38
33
35
36
32
31
35
27
35
33
39
36
45
37
36
34
38
42
37
45
45
47
44
39
45
32
42
35
44
37
43
25
43
41
44
45
36
38
43
37
36
38
36
35
32
32
36
34
41
33
32
31
34
29
32
34
34
26
30
31
28
27
26
22
22
21
18
12
14
7
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
31
37
38
37
34
40
36
36
35
28
41
28
30
34
35
40
36
35
36
35
38
42
38
41
35
36
35
41
41
43
38
39
44
44
46
43
34
42
41
45
47
48
41
45
45
65
42
43
37
40
41
40
40
37
39
42
37
35
39
36
35
40
26
33
36
27
28
35
32
29
29
33
30
31
24
23
26
22
19
21
14
13
11
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
40
30
37
34
33
33
30
32
30
38
29
41
39
34
32
33
36
37
38
39
37
39
38
30
41
37
35
34
39
42
44
42
44
41
43
37
48
50
48
47
47
41
44
46
40
28
43
36
44
38
38
38
39
37
40
33
36
37
33
34
38
38
28
33
27
31
32
27
29
29
29
29
29
27
22
26
23
17
20
20
11
14
9
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
39
42
35
38
40
39
38
40
42
35
38
33
31
34
32
35
37
35
40
39
34
34
36
45
37
39
38
40
41
41
39
40
46
43
41
54
46
44
47
48
36
40
43
34
37
57
37
45
39
39
33
41
35
45
35
33
29
27
34
37
38
30
32
28
32
28
32
34
30
30
32
25
31
25
24
27
21
20
21
17
11
14
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
44
42
40
41
38
36
40
31
38
43
40
41
47
36
43
37
36
39
31
38
39
37
40
39
39
40
44
45
43
40
45
43
38
41
40
36
44
46
50
45
45
43
40
42
47
29
41
36
35
32
43
36
40
33
35
35
32
42
35
39
31
29
28
32
29
34
28
27
31
33
27
27
25
23
23
24
20
20
21
11
17
10
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
40
38
42
37
39
38
37
40
28
31
38
36
33
42
32
41
36
39
45
38
47
46
39
38
41
41
41
43
37
42
41
41
44
40
46
42
39
39
42
39
39
45
40
46
43
56
39
37
35
39
36
37
32
33
34
32
39
30
34
34
25
25
37
29
28
31
34
27
30
28
25
25
23
20
22
21
20
19
16
11
11
6
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
24
39
32
36
36
38
32
35
38
35
30
37
37
42
46
35
41
38
36
44
36
39
45
40
41
42
39
33
44
40
38
44
40
47
44
43
48
51
39
41
44
41
43
37
32
23
34
34
35
38
40
35
41
34
34
35
30
33
35
25
30
31
31
32
36
31
26
33
28
28
24
29
24
24
26
16
18
19
15
12
9
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
34
26
40
37
37
37
44
39
44
39
38
33
37
32
43
38
36
36
37
31
36
40
35
43
42
37
35
43
35
42
39
41
36
38
38
45
44
40
43
43
47
37
39
39
37
28
37
36
40
38
31
39
28
35
29
30
31
31
26
31
30
33
32
30
31
30
29
24
28
22
24
23
19
20
20
19
18
16
8
12
9
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
37
33
31
36
35
34
30
31
29
37
38
34
37
38
32
41
40
34
32
37
39
31
41
42
36
38
46
36
39
34
43
41
51
43
47
46
44
42
39
43
35
41
40
39
42
50
35
40
40
35
36
30
36
28
36
33
34
34
37
28
33
33
32
32
30
25
24
28
24
22
28
24
23
25
16
17
16
16
11
10
6
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
32
37
32
33
34
37
41
40
36
30
36
44
33
32
36
34
31
41
43
39
37
42
40
33
41
48
37
42
44
47
43
38
36
44
44
45
50
42
41
40
43
42
42
42
38
30
39
36
34
36
39
38
31
34
31
36
33
33
31
34
33
30
28
31
26
25
28
28
25
27
25
20
24
20
17
17
16
9
10
9
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
42
35
38
38
37
37
35
38
40
39
33
28
39
38
31
36
48
40
41
39
39
39
35
41
39
35
47
44
41
38
38
42
50
46
48
45
35
41
42
39
39
37
41
36
37
50
34
42
39
39
35
33
39
35
33
28
34
35
26
33
32
31
25
26
23
26
27
24
23
28
19
23
19
15
20
15
16
10
13
7
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
46
43
39
38
41
37
38
36
42
36
38
41
35
36
41
38
33
36
34
39
37
38
41
38
40
42
35
42
50
50
49
46
35
44
39
43
40
41
45
44
40
45
36
37
37
25
43
39
34
33
32
30
23
33
36
39
33
27
30
29
30
28
34
22
24
26
29
24
23
22
25
20
21
19
14
18
14
11
8
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
30
42
34
33
35
36
37
34
33
46
39
35
39
42
35
41
41
40
40
33
40
35
32
36
39
36
44
46
35
39
42
46
47
40
43
35
41
41
34
38
39
39
40
40
37
28
38
31
36
33
32
31
41
33
28
30
32
29
33
33
29
30
22
26
26
29
21
21
26
19
17
17
14
15
15
16
10
11
7
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
34
27
41
40
32
41
41
46
41
31
42
42
37
37
40
33
30
37
39
38
32
41
38
38
37
41
38
36
47
41
40
46
51
45
39
40
42
35
38
38
42
34
29
33
35
56
36
35
32
35
32
34
30
31
32
32
28
31
31
25
25
20
25
27
30
24
24
24
20
25
21
19
20
17
16
14
9
8
6
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
35
38
33
30
37
28
27
25
35
36
34
33
32
30
37
33
38
34
37
46
45
36
44
42
37
42
42
40
37
43
46
38
40
42
39
41
36
44
45
42
34
36
40
33
38
26
35
32
35
29
30
32
31
34
33
29
29
29
27
28
25
26
31
25
23
22
20
22
23
17
15
17
16
15
17
9
9
8
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
44
41
40
43
40
37
41
39
33
38
32
38
40
37
41
40
38
37
40
38
41
44
39
41
43
37
42
42
40
43
43
50
51
38
43
46
44
42
41
36
33
36
37
42
40
46
30
31
31
28
31
30
32
26
28
25
28
29
27
24
26
31
22
23
21
25
25
26
22
19
17
17
15
12
14
8
9
6
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
37
36
37
41
34
42
38
37
39
40
41
38
39
42
40
42
42
43
37
37
38
44
42
36
42
47
38
36
37
37
40
32
24
46
44
42
42
41
36
35
37
34
34
39
28
22
29
35
25
33
33
32
30
31
32
29
26
24
27
29
27
24
19
24
25
19
26
19
17
12
19
18
12
18
9
9
8
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
41
40
35
31
42
35
36
41
36
32
42
38
39
39
34
34
38
37
37
38
41
38
42
51
41
36
41
44
47
41
38
41
43
34
43
38
40
38
41
35
41
43
38
29
33
45
36
27
33
29
31
27
28
28
26
29
30
28
26
26
24
19
25
22
24
25
18
24
20
19
18
12
12
13
10
11
6
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
33
39
44
40
35
36
38
38
41
42
31
41
38
35
41
37
32
36
38
38
35
38
42
38
39
40
39
42
38
44
39
37
31
47
33
34
40
38
32
41
35
32
34
38
33
20
26
30
29
33
31
30
31
31
30
26
27
26
25
22
24
24
17
26
22
21
22
15
13
19
16
11
18
12
9
6
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
43
35
37
39
38
41
38
36
41
39
41
38
36
40
33
39
40
40
40
36
40
40
36
38
45
43
45
40
44
38
39
43
50
31
38
40
32
35
37
36
33
31
36
27
29
23
32
32
33
35
27
32
26
26
25
30
30
29
25
20
21
22
28
25
20
26
19
17
15
18
14
15
12
10
8
6
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
40
43
37
40
39
30
34
31
29
41
39
34
41
35
40
42
43
35
37
42
36
35
35
36
36
42
40
45
36
41
45
41
39
42
41
34
31
24
30
29
36
39
27
28
34
42
32
30
33
25
31
27
31
31
27
28
23
20
24
23
20
25
28
19
24
14
18
16
20
16
10
15
13
7
7
7
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
22
32
33
32
36
47
36
38
35
31
40
39
38
43
37
39
37
44
40
40
41
37
40
36
40
39
39
36
46
43
35
37
42
37
31
35
34
37
36
35
31
24
30
31
27
21
29
33
28
28
28
32
24
22
28
23
22
26
20
24
24
23
22
23
19
20
15
14
16
11
15
13
10
8
8
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
43
35
43
40
39
34
43
39
43
33
32
41
39
39
39
32
34
37
41
37
42
43
39
43
37
36
41
44
37
35
45
38
27
35
36
35
39
43
33
29
25
28
25
29
31
45
30
27
27
29
29
21
27
28
23
22
24
22
24
21
26
25
22
19
18
16
14
17
16
11
14
12
7
8
4
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
42
38
33
36
36
38
35
37
36
43
33
34
35
34
40
41
41
35
33
37
30
32
38
36
42
40
38
40
40
40
33
36
41
36
37
31
34
29
33
32
38
38
41
36
32
21
27
29
30
27
23
30
26
26
21
25
23
21
18
24
21
21
19
19
18
15
15
17
10
14
13
12
8
7
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
32
41
37
38
35
40
36
37
36
34
39
33
34
38
34
41
37
39
39
37
44
42
39
43
38
40
39
31
41
41
37
39
40
38
32
39
32
31
30
38
27
29
27
28
27
18
33
28
26
27
29
25
27
22
30
20
19
20
26
25
24
21
17
18
15
17
15
15
13
14
12
8
7
4
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
36
33
37
38
43
36
40
39
41
35
36
41
39
38
41
36
39
40
37
39
39
42
41
38
41
35
36
40
30
33
39
38
34
26
35
34
31
30
33
24
31
27
29
29
32
44
26
24
28
26
26
24
21
26
19
23
23
24
20
21
20
15
18
16
18
12
18
10
11
13
10
7
6
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
43
37
42
36
32
36
36
34
36
46
43
38
40
38
35
36
40
34
38
37
32
35
37
38
36
43
37
37
44
34
35
33
33
43
36
34
34
41
29
32
31
36
27
27
25
18
23
28
24
29
25
25
27
19
26
25
23
20
26
23
19
20
18
17
11
17
12
14
14
12
9
6
5
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
37
41
32
41
43
42
38
46
39
36
38
38
36
36
35
38
34
43
43
44
45
40
41
36
36
33
40
34
26
40
33
28
33
32
32
27
31
23
26
28
27
23
27
31
31
37
30
28
29
23
20
23
19
27
19
20
21
23
21
20
16
22
14
13
15
15
15
11
15
9
7
7
7
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
39
38
38
31
35
41
43
32
41
38
38
36
34
38
37
41
43
41
42
42
46
44
36
38
37
40
36
40
44
32
31
39
27
29
29
32
31
29
34
31
31
25
29
24
22
18
25
25
21
21
25
24
27
21
23
20
23
22
21
19
20
11
20
15
16
10
10
12
9
9
6
5
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
40
39
41
43
36
31
32
39
33
35
36
38
43
36
37
41
39
38
35
37
29
35
43
43
41
37
34
37
31
33
34
28
32
29
28
29
25
26
28
29
27
34
31
29
29
36
28
26
24
24
27
24
21
19
17
19
21
24
18
15
17
17
12
13
14
17
12
13
11
7
6
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
26
35
35
33
38
39
39
37
38
42
40
44
40
49
43
37
40
41
45
37
46
42
39
39
43
40
42
33
34
31
33
36
33
29
32
27
25
30
31
29
30
28
26
25
24
20
22
23
21
24
23
18
18
20
21
24
21
18
17
17
14
17
14
13
12
11
12
10
9
6
6
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
37
32
37
37
36
36
37
39
41
40
40
38
38
34
43
40
34
34
32
40
39
39
39
42
34
34
33
31
31
39
35
33
34
33
26
27
34
32
28
24
23
18
24
24
25
15
24
20
28
21
18
22
19
23
25
23
21
19
17
16
17
13
11
17
14
9
12
11
6
6
5
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
51
41
40
44
41
35
34
34
33
31
41
39
41
41
39
39
43
41
41
40
36
37
37
31
33
35
33
36
36
27
30
26
30
29
29
35
31
26
25
27
31
33
25
26
24
37
24
26
18
21
20
19
26
20
17
21
17
15
15
15
15
8
14
12
10
14
10
8
6
6
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
32
41
33
32
39
44
43
40
41
42
33
37
32
34
36
37
35
37
39
36
40
36
33
37
36
34
33
36
32
33
26
26
21
25
29
27
27
28
28
29
20
21
23
20
23
13
19
21
25
24
20
23
18
22
22
17
19
17
16
17
13
16
15
14
13
11
12
7
6
3
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
48
43
44
44
37
34
38
38
39
38
34
35
41
36
34
38
43
38
38
37
30
34
38
31
30
30
34
28
29
23
29
31
30
30
28
25
23
24
20
22
24
22
25
30
23
31
24
20
21
19
22
21
22
20
21
19
12
14
14
15
8
17
11
7
10
8
8
5
6
4
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
45
44
44
36
39
38
34
37
32
37
42
35
36
42
38
33
34
39
35
36
36
30
27
32
34
30
24
23
23
31
27
26
24
26
27
25
23
24
29
24
27
28
26
20
20
15
22
23
21
23
21
21
19
20
18
14
16
16
16
6
17
12
14
12
10
12
6
6
3
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
25
36
36
41
37
40
39
36
40
35
40
42
36
33
36
41
35
32
32
34
36
40
32
29
28
32
30
32
33
30
30
30
35
27
25
24
28
24
21
26
20
23
18
19
26
17
23
21
18
19
22
18
23
19
17
14
18
12
12
13
14
12
11
13
10
9
5
6
4
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
37
30
39
41
41
38
40
40
42
37
30
37
39
41
34
37
34
35
33
29
27
24
32
28
29
26
30
32
30
26
28
29
25
28
26
26
27
25
21
19
27
18
26
22
20
34
19
23
24
22
20
23
16
16
11
16
9
16
9
16
13
11
11
7
10
4
5
3
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
30
38
34
34
34
37
39
34
35
44
42
35
41
35
42
31
37
34
33
30
29
31
28
36
26
29
27
21
23
26
27
21
23
23
26
27
23
26
27
29
26
29
17
27
28
15
27
20
17
20
19
14
16
11
18
13
18
8
16
14
10
10
11
12
11
6
6
4
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
36
29
35
36
42
40
35
45
38
31
39
38
34
38
35
35
31
31
30
33
38
34
31
25
34
29
28
30
29
33
24
26
24
28
26
24
23
22
25
22
20
21
28
27
21
31
14
19
23
18
16
18
14
17
10
13
11
15
13
12
11
10
9
8
4
5
3
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
46
43
38
38
34
34
38
35
39
37
32
34
31
30
34
32
30
30
32
28
18
22
27
28
23
28
29
29
29
25
31
32
31
27
26
28
25
25
25
24
22
21
25
19
21
8
20
21
15
16
17
17
14
12
14
14
11
15
14
13
10
11
8
9
4
5
4
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
22
25
31
35
35
36
30
28
32
32
26
29
28
30
34
33
30
27
32
36
31
27
24
29
28
29
30
28
27
27
25
26
23
25
21
29
27
25
22
25
29
21
19
14
15
20
14
18
17
15
11
12
14
15
14
15
11
10
10
10
9
9
6
5
4
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
20
23
25
27
29
32
30
30
29
35
26
26
20
19
25
28
30
27
29
29
31
33
29
23
24
22
22
22
22
24
25
23
20
24
22
21
18
23
17
18
15
16
21
27
15
18
13
14
13
15
15
13
12
13
12
13
11
8
10
8
7
5
5
3
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
10
17
21
25
25
29
32
30
30
27
33
30
29
30
27
27
28
27
25
26
23
23
26
28
22
22
23
24
22
19
19
21
25
23
17
21
24
19
23
13
20
22
19
12
16
13
18
14
12
11
13
16
13
11
13
10
10
10
9
11
5
4
3
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
12
17
19
21
23
25
26
29
26
27
27
24
22
21
24
23
24
23
24
26
22
21
21
23
24
22
21
20
21
22
23
20
17
20
18
20
20
20
24
17
12
12
19
15
17
12
11
16
16
17
13
13
12
10
11
8
8
9
5
6
3
3
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
7
9
19
19
23
19
24
23
28
27
29
29
28
27
24
21
23
25
23
24
26
20
23
24
24
24
20
21
23
21
21
20
23
23
22
21
17
16
12
14
17
16
12
17
13
15
17
14
14
11
10
11
13
11
9
12
10
8
4
5
3
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
12
9
19
18
20
22
21
23
23
23
30
29
26
24
26
23
19
21
17
21
25
22
18
18
17
24
24
23
17
19
19
18
20
21
15
14
12
14
18
14
15
22
11
13
15
13
14
13
11
13
14
9
11
11
7
9
6
4
2
4
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
10
11
20
18
15
20
16
20
21
23
23
27
26
24
24
28
23
27
23
21
22
25
23
25
20
19
17
22
15
18
18
14
13
12
17
18
19
12
17
15
7
17
17
14
13
14
11
12
12
10
11
7
6
10
8
5
6
4
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
8
8
11
17
20
17
23
21
21
20
19
21
19
22
20
19
24
19
20
20
18
22
23
21
18
20
22
22
24
18
17
16
12
16
18
15
15
18
14
15
13
15
13
12
16
10
13
13
11
11
9
10
10
7
3
4
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
9
9
13
13
16
18
17
20
20
21
18
26
23
23
19
19
21
22
22
24
17
15
19
22
20
18
18
16
20
17
16
20
18
15
16
13
13
15
14
20
13
15
15
10
13
10
10
8
7
9
8
8
7
4
3
3
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
8
10
14
14
12
19
14
15
17
19
17
22
22
27
23
20
19
21
18
21
22
17
17
17
19
15
18
12
15
18
15
15
14
15
14
15
15
16
11
13
11
11
14
11
11
9
10
10
6
8
7
4
5
3
4
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
8
6
11
14
15
10
20
17
15
17
15
13
20
14
19
22
19
17
17
15
16
19
18
17
12
11
12
18
17
14
13
14
15
17
18
16
16
13
20
12
15
14
10
10
9
10
10
7
10
9
5
4
2
3
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
9
7
11
13
17
10
17
18
16
18
17
13
20
19
16
19
21
21
20
20
15
13
15
16
21
16
14
13
15
16
13
15
12
11
16
12
15
5
15
11
7
10
9
11
11
8
10
8
6
4
3
4
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
4
7
9
12
11
14
10
16
16
15
14
15
13
14
18
15
15
18
17
16
18
19
16
18
17
19
19
18
15
17
18
14
17
22
13
14
10
10
11
10
14
9
10
10
8
8
6
6
4
5
3
2
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
5
6
9
12
11
13
11
13
14
18
15
17
13
16
18
16
13
16
17
15
18
19
18
18
15
13
16
17
17
17
20
14
11
11
11
13
15
11
10
5
11
11
8
8
8
8
6
3
1
3
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
6
5
9
13
12
10
13
13
13
18
12
17
12
13
17
18
16
14
17
14
16
14
12
14
17
15
16
16
16
11
12
8
11
11
10
9
8
7
14
8
8
8
7
7
5
3
4
3
3
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
4
6
5
8
11
14
9
14
12
10
19
11
13
15
12
10
15
16
15
15
12
13
16
16
13
14
14
11
10
9
11
13
12
11
9
12
9
11
6
10
7
8
7
6
5
4
3
3
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
4
7
6
8
11
12
7
13
13
6
15
15
10
13
15
12
11
10
13
14
15
11
15
16
14
11
10
11
11
9
11
11
9
9
8
9
10
11
6
8
6
7
4
4
2
2
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
5
6
7
8
12
13
9
11
16
10
8
14
11
12
14
13
14
13
12
11
13
8
7
6
7
10
8
10
12
8
9
11
10
12
11
8
5
9
7
7
5
4
2
3
3
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
2
4
6
7
7
11
11
10
9
12
13
11
11
12
8
11
13
10
13
13
11
13
11
13
12
12
13
14
10
13
8
7
10
7
9
7
10
6
7
5
3
2
2
2
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
4
3
6
8
6
8
9
10
10
13
11
9
9
11
9
8
10
7
8
8
7
9
10
11
9
9
6
8
8
9
9
10
7
5
8
5
7
5
4
3
3
3
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
4
3
6
8
7
8
8
10
10
11
14
11
10
12
9
9
10
10
11
13
13
10
9
10
9
12
10
6
11
11
8
9
9
7
8
5
4
3
3
3
3
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
2
4
3
6
9
9
7
7
7
11
13
13
12
12
14
12
12
10
9
7
8
8
10
10
9
6
9
13
8
8
5
5
5
6
5
5
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
2
4
2
5
7
9
7
8
4
4
9
13
11
11
14
12
13
15
13
12
13
11
7
9
10
9
8
8
5
8
8
8
6
4
2
2
1
2
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
2
4
3
4
6
9
8
8
7
4
2
6
8
7
9
8
7
7
6
7
7
10
9
10
9
4
6
7
5
5
4
3
2
3
1
3
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
2
3
3
5
5
8
11
7
9
9
7
5
4
5
7
6
8
9
7
8
9
8
5
5
8
5
5
6
4
3
2
3
0
4
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
2
3
3
5
4
4
10
9
9
8
9
10
8
8
9
9
9
9
7
5
5
6
6
5
6
7
6
5
3
3
0
4
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
2
2
3
4
4
4
4
7
7
6
7
7
6
5
6
5
5
6
6
6
5
4
5
7
4
2
1
2
1
4
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
3
3
2
2
4
5
5
4
4
7
5
7
5
5
4
6
6
5
4
5
7
8
6
2
2
3
2
3
3
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
2
3
1
1
4
4
6
4
5
4
7
8
7
5
6
7
8
7
5
2
2
2
2
0
3
1
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
3
2
1
2
3
5
6
5
5
5
6
7
6
5
3
2
1
3
2
1
3
4
1
3
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
2
2
3
2
1
0
1
3
3
3
2
1
1
2
2
2
2
0
2
3
1
2
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
3
1
2
3
2
1
1
0
0
1
1
1
0
0
1
3
3
2
3
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
2
1
2
3
3
3
3
2
3
3
3
4
3
1
3
2
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
2
3
2
1
2
1
2
1
1
2
2
2
3
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
2
2
3
3
3
3
2
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
