0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
128
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
128
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
128
0
128
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
128
0
0
128
128
128
0
128
0
128
128
0
0
128
128
128
0
0
128
0
0
0
0
0
0
128
0
0
0
128
128
0
0
128
0
128
0
128
164
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
128
0
0
0
0
0
0
0
0
0
0
0
0
0
128
0
0
0
0
128
0
0
0
0
0
0
0
0
0
128
0
0
128
128
128
0
128
0
0
128
0
0
0
128
0
128
0
128
0
0
128
0
0
0
0
0
128
128
0
128
0
0
0
0
0
0
0
0
128
128
0
128
128
128
128
128
128
0
128
0
128
128
128
128
128
128
0
0
128
164
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
128
128
0
0
0
0
128
0
128
0
0
0
0
0
0
128
0
128
128
0
0
128
0
128
0
0
0
0
128
128
0
128
0
0
0
128
0
128
128
128
128
0
0
128
0
0
0
0
128
128
128
0
0
128
128
128
128
0
128
128
0
128
0
128
0
0
128
0
0
0
128
128
0
0
128
0
0
128
128
164
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
128
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
128
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
128
0
128
0
0
0
0
0
0
0
0
0
0
0
128
0
0
0
128
0
0
0
0
0
0
0
0
0
0
0
128
0
128
128
128
128
0
0
0
0
128
128
0
0
0
0
0
0
0
128
164
0
0
128
0
0
128
0
0
0
0
0
128
0
128
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
128
0
0
0
0
128
128
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
128
0
0
0
0
128
128
128
0
0
0
0
0
0
0
0
128
0
0
128
0
128
128
128
164
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
128
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
128
128
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
128
0
0
0
0
0
0
0
0
0
0
128
128
128
0
128
0
0
0
0
0
0
128
0
0
0
0
0
0
0
0
128
0
0
0
0
164
160
0
0
0
0
0
0
0
0
128
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
128
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
128
0
128
128
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
128
0
0
0
0
0
0
0
0
0
0
0
0
0
128
128
128
0
0
0
0
128
128
128
0
0
0
128
128
128
0
0
0
128
164
160
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
128
128
0
128
0
0
0
0
0
128
0
0
0
128
0
0
0
0
0
128
128
0
0
0
0
164
160
0
0
0
0
0
128
0
128
128
0
0
128
128
128
128
0
128
0
128
128
0
128
128
128
128
128
128
0
128
128
0
0
0
0
128
0
0
0
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
0
128
128
128
128
0
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
0
128
128
128
128
0
0
128
128
128
128
128
128
0
0
0
128
164
160
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
128
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
128
0
0
0
0
0
0
0
0
0
0
0
0
128
128
128
128
0
0
128
0
0
0
0
0
0
0
0
0
128
0
0
128
128
128
0
0
128
128
0
128
0
0
0
0
0
0
0
0
128
0
0
0
0
0
0
0
164
160
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
128
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
