128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
128
127
127
127
128
128
127
127
127
127
127
128
127
127
127
127
128
127
127
128
128
128
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
128
128
127
127
128
128
128
128
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
128
128
128
128
128
128
127
127
128
128
127
128
127
127
127
127
127
128
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
127
127
128
128
128
128
128
128
128
128
127
128
128
128
128
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
128
128
128
128
128
128
127
128
127
128
128
128
127
128
127
127
127
127
128
128
128
128
127
127
127
128
128
128
128
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
128
128
128
128
128
127
127
128
128
128
128
128
128
127
127
128
127
128
128
128
128
128
127
127
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
127
127
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
128
127
127
127
127
128
128
127
128
127
127
128
128
127
128
127
127
128
128
128
128
128
128
128
127
128
127
128
128
128
128
128
128
128
128
128
128
127
128
127
128
127
127
127
127
128
128
127
128
128
128
128
128
128
128
127
128
128
127
127
127
127
128
127
127
129
126
129
127
127
128
128
128
127
127
127
127
128
127
128
127
127
127
128
127
127
128
128
127
127
128
128
128
128
128
127
128
127
127
128
128
127
128
127
128
128
127
127
127
127
128
127
128
128
128
127
128
128
126
129
127
127
128
127
128
127
127
128
127
128
127
127
128
127
128
128
128
128
127
128
127
128
127
127
128
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
128
127
128
128
128
127
128
128
128
128
127
128
128
127
127
128
128
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
128
127
127
127
127
128
127
128
127
128
128
128
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
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
127
127
128
128
128
127
128
128
127
128
128
127
127
128
128
128
128
128
128
128
128
128
127
127
127
128
128
128
128
128
128
127
128
128
128
127
127
127
127
128
127
127
127
127
128
128
128
128
128
127
128
127
128
128
128
127
127
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
128
128
128
128
128
128
127
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
128
128
127
128
128
128
128
128
128
128
127
127
127
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
128
128
128
128
127
127
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
128
128
127
128
127
127
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
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
127
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
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
128
128
128
128
128
128
127
128
128
127
127
127
127
127
128
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
127
127
127
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
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
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
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
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
127
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
127
128
128
128
127
127
127
127
128
127
128
127
127
127
128
127
128
128
127
127
127
127
127
127
127
128
128
128
127
128
128
128
128
128
128
127
128
128
128
128
128
127
127
127
128
127
128
128
127
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
127
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
127
128
128
127
127
127
127
127
127
127
127
127
128
128
127
128
127
128
127
127
127
128
127
127
127
128
127
127
127
127
127
127
128
128
128
127
127
128
128
128
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
128
127
127
128
128
128
128
128
127
128
128
127
127
128
128
128
128
127
128
127
128
127
127
127
127
128
128
128
128
128
128
128
127
127
127
127
128
128
128
127
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
127
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
128
128
128
128
128
128
128
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
127
127
128
128
127
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
127
127
128
128
128
128
128
127
127
128
127
127
127
127
128
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
128
127
127
127
127
127
127
127
127
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
128
128
127
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
128
127
127
127
127
127
128
127
127
127
127
128
128
127
127
127
127
127
127
128
128
128
128
127
127
127
128
127
127
128
128
127
127
127
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
127
127
128
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
128
127
128
127
128
127
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
128
127
128
128
128
127
127
127
127
127
127
127
128
128
128
128
127
127
128
127
127
127
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
127
128
128
128
127
127
127
128
127
128
127
128
127
128
128
128
128
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
128
127
127
127
128
127
127
127
127
127
127
128
127
127
127
127
127
128
128
128
127
127
127
127
127
127
128
127
127
128
128
128
128
128
128
127
128
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
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
127
127
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
128
128
128
128
128
128
127
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
128
127
127
128
128
127
127
128
128
127
127
127
127
127
128
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
127
127
127
127
128
128
128
127
128
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
128
127
127
128
127
128
128
128
127
128
128
127
127
127
127
127
127
127
127
127
127
128
128
127
127
128
127
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
128
127
128
127
127
127
127
128
128
128
128
128
128
128
128
127
128
127
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
127
128
128
127
127
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
127
128
128
127
127
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
128
127
127
127
128
127
128
128
128
127
127
128
127
127
127
127
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
128
127
127
128
128
128
127
127
127
127
128
128
128
128
128
127
127
127
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
128
127
128
127
127
127
127
128
127
128
128
127
128
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
128
128
128
127
127
127
127
127
128
127
127
127
127
128
127
127
128
128
128
128
128
128
128
127
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
127
128
127
127
128
128
128
127
127
127
127
128
128
127
127
127
127
127
127
127
127
127
128
127
128
127
127
127
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
127
128
128
127
128
128
128
127
128
127
127
128
127
128
128
128
128
128
128
128
128
128
127
128
128
127
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
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
127
127
127
128
128
127
127
127
128
127
127
127
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
128
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
127
127
128
128
127
127
127
128
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
128
128
128
128
127
128
128
128
127
127
128
128
128
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
128
128
128
128
128
128
127
128
127
128
128
128
128
128
128
127
128
127
127
127
127
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
127
127
128
128
128
128
128
127
127
127
127
127
127
127
127
128
128
127
128
127
127
128
128
128
127
127
128
127
127
127
128
127
127
127
127
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
127
127
127
128
128
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
128
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
128
128
128
127
127
128
127
128
128
127
127
127
127
127
128
128
127
127
127
128
127
127
127
127
128
127
127
128
128
128
128
128
127
127
127
127
127
128
128
128
128
127
128
128
127
127
127
127
127
127
127
128
128
127
128
128
128
127
127
128
127
127
128
128
127
128
128
128
128
127
128
127
128
128
128
128
128
128
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
128
128
128
127
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
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
128
128
128
128
127
128
127
128
127
128
127
127
128
128
128
128
128
127
128
128
127
127
128
128
127
127
127
127
127
128
127
128
127
127
127
128
128
128
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
127
127
128
128
128
128
128
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
128
128
127
127
128
127
127
128
127
128
127
127
128
128
128
127
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
127
127
127
128
127
127
127
127
127
128
127
128
127
127
127
127
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
128
127
127
127
127
128
127
128
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
128
128
127
128
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
127
128
127
127
127
127
128
128
128
128
128
127
127
127
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
127
127
127
127
127
128
128
127
127
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
128
127
127
127
127
127
128
128
127
128
127
127
127
127
128
128
128
128
128
128
128
127
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
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
127
128
128
128
128
128
128
128
127
128
127
128
128
128
128
128
128
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
127
128
128
127
127
127
127
128
127
127
127
127
128
128
127
127
127
127
128
128
127
128
127
127
127
127
128
127
127
127
127
128
128
127
127
127
127
128
127
127
127
127
127
127
127
128
127
127
127
127
127
128
128
127
127
128
128
128
128
127
127
128
128
128
128
128
128
128
128
127
127
127
127
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
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
128
128
128
128
128
128
128
127
127
127
128
128
128
128
128
128
128
128
128
128
127
127
127
128
127
128
128
128
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
128
128
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
128
127
128
128
128
128
128
127
127
128
127
127
128
128
128
128
127
128
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
128
128
128
128
128
128
127
127
127
127
127
127
127
128
127
127
128
128
128
128
128
128
128
128
127
128
127
127
128
128
128
128
128
128
128
128
128
128
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
127
128
127
127
128
127
128
128
128
127
127
127
127
128
128
127
128
128
128
128
127
127
127
127
127
127
127
127
128
128
127
128
127
128
128
127
127
127
127
128
128
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
127
127
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
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
128
128
128
128
128
128
128
128
128
127
128
128
128
128
127
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
127
127
127
128
128
128
127
128
127
127
128
127
127
127
128
127
127
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
127
128
128
128
128
127
128
127
128
127
127
128
128
128
127
128
128
127
128
128
127
127
127
127
128
128
128
127
127
127
127
127
127
127
127
127
128
129
128
128
127
127
127
128
128
128
128
127
127
127
128
128
127
127
128
128
127
128
127
127
128
128
128
128
128
128
127
127
128
128
128
128
128
128
127
127
127
127
128
128
127
128
127
127
127
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
129
129
129
128
128
127
127
128
127
128
129
128
127
127
127
127
127
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
127
126
126
126
126
126
126
127
126
126
126
126
126
127
127
126
126
127
126
127
127
126
126
126
126
127
127
126
125
125
126
123
115
119
124
127
128
126
127
129
131
128
125
127
127
127
128
128
127
127
128
128
127
128
130
131
128
128
130
129
128
129
127
128
126
127
126
128
127
125
127
126
126
128
127
127
127
126
126
127
127
128
128
126
127
127
126
128
127
129
127
128
130
127
128
126
128
128
131
128
128
127
125
125
129
130
126
128
125
128
129
128
126
125
127
126
127
127
128
129
128
129
127
126
127
129
127
128
129
126
127
129
127
129
127
126
127
126
127
124
130
128
127
129
128
124
128
126
127
129
128
128
128
131
130
131
126
123
123
125
123
117
123
135
132
127
132
128
126
128
136
129
128
131
127
130
130
127
121
127
127
129
125
131
133
143
124
125
131
129
134
123
129
134
123
124
132
135
136
125
130
131
125
133
130
134
133
122
127
131
134
136
129
128
133
131
131
132
131
128
130
131
129
132
133
130
128
127
129
130
129
130
128
128
132
135
132
132
132
129
131
135
133
130
128
134
132
131
132
129
130
135
130
129
131
130
129
132
131
127
128
132
132
135
129
129
127
130
130
131
132
132
126
131
132
134
132
130
128
128
130
131
131
127
127
132
129
128
129
129
129
129
127
131
134
133
128
126
129
130
129
128
131
130
125
127
128
127
130
127
124
128
127
128
129
131
126
128
125
124
129
123
120
125
127
127
124
126
125
125
126
128
125
127
126
122
122
129
127
119
121
125
125
124
125
122
125
124
120
123
125
125
122
122
126
125
124
120
122
125
125
129
123
124
122
122
119
125
123
125
123
124
122
123
128
126
128
122
123
127
127
126
124
125
124
124
126
124
121
121
125
130
127
127
125
127
128
127
126
127
124
122
123
124
125
122
118
123
121
123
122
122
122
122
122
122
126
124
125
125
124
125
122
127
127
130
125
122
124
125
127
126
126
127
124
125
123
126
125
122
121
122
127
125
125
123
122
125
127
130
124
125
121
122
127
128
124
126
123
129
130
128
123
124
127
128
126
125
124
123
129
129
128
124
121
125
130
133
130
125
123
127
131
130
131
130
125
125
128
130
132
124
123
128
128
130
132
131
128
125
127
127
132
130
126
127
131
131
130
129
130
128
127
129
128
129
126
122
124
125
128
129
125
125
126
126
126
127
128
129
129
129
129
129
128
125
125
126
127
127
129
128
125
125
126
125
124
126
128
131
129
126
123
126
129
129
129
126
123
126
127
129
127
125
123
124
126
127
127
129
127
125
124
125
126
126
124
124
124
125
126
126
127
127
127
126
126
127
128
128
127
127
127
127
128
128
128
128
128
127
127
128
128
129
129
129
128
127
127
128
128
129
128
128
127
128
128
129
129
129
128
128
128
128
129
129
130
129
128
128
128
129
129
129
129
129
129
129
129
130
130
129
129
129
129
129
129
129
130
130
129
129
130
130
130
130
130
129
129
129
129
130
130
129
129
129
130
130
130
129
129
129
130
130
129
130
129
130
130
130
130
130
130
129
130
130
130
130
130
130
130
130
129
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
130
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
128
129
129
129
129
129
129
129
129
129
129
129
128
128
129
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
127
128
128
128
128
127
127
127
128
128
128
127
127
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
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
127
127
127
127
128
128
128
127
128
128
127
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
128
127
128
128
128
127
127
127
127
127
128
127
127
127
128
127
128
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
127
127
127
127
127
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
127
128
128
127
127
127
127
128
128
128
127
127
128
127
127
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
128
127
128
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
126
126
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
128
129
128
128
127
128
129
129
128
128
128
131
131
132
128
123
121
122
128
131
131
127
123
125
128
131
130
127
124
126
128
131
130
128
124
125
126
130
130
127
126
126
128
130
130
127
127
127
129
129
130
128
127
127
128
129
129
128
127
127
128
129
128
127
126
127
128
129
129
128
128
127
127
128
128
129
128
127
126
127
128
130
128
126
126
128
129
128
126
126
127
129
129
127
126
126
127
128
130
129
126
124
125
128
128
127
126
126
127
128
129
128
127
126
127
123
121
120
124
128
131
132
133
133
131
132
133
133
132
129
127
128
130
130
126
126
126
128
129
130
128
128
130
130
129
130
131
130
128
129
129
128
128
128
128
128
129
129
128
127
128
129
129
129
129
129
130
130
130
130
130
132
132
132
131
130
130
132
133
131
130
130
132
133
132
131
130
131
130
129
129
129
128
128
127
127
127
126
125
126
125
124
125
125
125
125
126
126
126
126
125
125
126
125
125
125
125
125
124
123
122
123
122
122
122
121
122
123
125
124
126
129
132
135
138
139
139
140
142
143
143
142
141
143
144
145
143
143
146
148
147
148
150
153
155
150
137
129
112
96
101
93
86
71
82
90
90
99
107
115
121
136
143
138
138
138
139
132
124
115
105
102
101
96
90
87
96
100
106
111
119
125
134
144
146
149
152
156
156
153
150
150
150
150
151
154
157
161
169
171
177
181
186
138
100
99
105
88
40
49
62
61
69
78
87
95
129
153
148
150
168
185
181
163
166
153
144
133
126
103
85
72
64
58
63
70
80
87
98
118
127
133
138
144
143
143
144
134
129
131
129
123
123
131
133
133
136
145
154
156
165
176
185
188
196
201
206
210
148
92
111
121
76
20
40
59
54
47
64
81
96
125
152
148
154
188
205
187
168
185
174
155
126
114
89
69
69
52
34
51
72
79
80
109
126
135
144
154
153
149
158
154
147
139
143
147
134
129
134
138
138
142
149
160
171
182
185
193
204
222
184
116
146
131
91
47
45
74
40
43
50
75
86
94
130
128
154
178
181
179
174
194
187
157
150
138
125
93
73
66
49
56
59
59
72
90
109
116
132
146
148
152
155
157
151
149
150
141
143
136
135
138
138
142
142
154
166
170
175
185
194
203
212
161
116
165
140
84
55
74
96
33
40
70
78
78
87
134
129
141
175
171
177
183
195
171
158
164
130
110
89
86
76
51
66
61
66
81
90
105
114
132
140
142
156
155
156
154
152
158
146
146
142
139
142
138
143
143
156
165
165
177
187
192
197
207
141
132
170
121
54
70
97
79
13
65
94
76
66
104
138
123
138
169
169
174
179
187
172
166
167
124
115
116
96
63
57
71
60
59
75
89
98
111
130
135
140
153
152
153
155
156
150
147
152
144
136
141
145
138
140
153
161
158
174
183
185
188
206
172
122
170
133
84
66
103
83
25
42
103
64
50
85
133
111
124
157
164
165
171
178
180
166
165
149
126
128
89
78
79
71
59
53
77
85
85
96
121
127
129
141
155
149
155
159
153
154
154
149
140
150
143
134
142
150
151
153
165
178
174
186
201
175
121
176
174
80
70
114
102
26
52
107
68
44
93
121
109
106
152
151
157
165
169
178
170
162
144
140
141
106
79
95
81
58
56
92
78
64
95
122
110
110
140
149
140
146
159
157
153
155
151
150
149
142
139
148
145
144
153
165
165
166
182
195
165
127
154
168
75
73
123
95
38
69
103
65
56
96
106
105
104
140
151
152
153
162
181
167
154
158
150
144
109
95
108
87
67
72
81
78
71
99
103
106
111
132
144
136
142
156
158
152
154
161
151
147
151
148
142
144
149
150
155
159
167
172
181
191
143
136
184
134
79
120
105
70
51
99
77
50
78
97
103
97
113
140
142
147
147
172
167
149
160
159
147
118
116
113
95
85
74
89
77
71
88
98
97
102
120
131
125
141
147
150
150
154
161
155
149
153
154
144
139
151
151
145
153
164
164
162
179
188
124
136
186
91
98
133
96
70
77
95
76
70
91
86
107
96
114
138
135
136
150
170
156
149
170
150
149
128
124
127
101
97
81
95
79
75
103
93
93
104
122
119
120
143
140
146
150
152
162
149
151
157
152
144
143
153
144
145
153
156
157
162
170
181
150
133
172
149
87
139
125
83
83
92
97
69
84
88
96
104
93
135
125
127
140
158
153
144
160
155
153
141
127
139
108
99
102
102
89
79
97
95
90
98
112
116
113
125
139
138
143
148
158
151
151
158
154
147
145
152
145
140
149
148
149
153
160
163
170
166
130
177
166
89
144
108
90
102
89
103
82
85
93
104
104
88
130
117
115
137
144
153
140
155
164
140
140
145
132
119
123
113
97
102
94
95
96
94
102
104
106
116
122
124
131
139
143
145
150
150
153
151
149
149
144
143
143
142
140
143
145
146
151
154
160
165
138
138
171
106
133
130
96
122
90
107
106
85
96
98
104
89
112
119
108
127
128
145
143
130
152
146
138
140
138
131
126
118
117
109
104
102
103
100
99
104
108
111
114
121
129
128
137
142
144
146
149
151
146
148
146
144
142
140
140
140
139
140
142
144
146
150
157
141
138
157
113
127
137
107
125
103
107
109
94
102
100
105
99
110
115
112
121
125
134
131
134
143
142
137
137
132
130
126
117
123
116
108
113
109
107
109
111
112
112
117
122
126
127
133
138
140
142
144
146
144
143
144
142
137
138
136
137
134
136
138
134
140
141
140
147
144
140
142
135
125
132
126
118
115
112
116
102
108
110
100
109
108
114
116
114
124
123
125
128
135
130
126
135
128
129
126
125
124
119
122
121
118
119
120
120
122
123
127
126
129
132
134
135
136
138
137
137
139
138
133
132
136
137
126
133
132
132
136
129
132
134
131
135
138
135
134
136
133
131
133
122
129
122
119
120
115
117
114
114
115
113
115
117
116
118
122
120
124
124
128
127
128
132
129
130
131
129
130
127
128
128
126
127
126
126
127
125
130
126
129
135
129
134
133
129
132
128
136
128
128
132
128
137
132
126
132
128
134
127
137
129
133
129
136
131
134
131
132
127
131
130
127
126
127
122
122
123
121
123
120
123
120
124
122
124
124
126
127
126
129
129
129
129
130
129
129
127
128
122
138
123
125
134
121
125
130
124
131
132
127
128
129
126
126
125
128
129
127
128
127
127
127
128
128
128
128
129
128
128
129
128
129
128
127
128
128
129
128
128
127
127
127
126
127
126
126
126
126
125
126
126
126
126
127
126
126
127
127
127
127
128
128
128
129
129
129
129
129
129
129
129
129
129
129
129
129
129
128
128
128
129
128
128
128
129
129
128
129
129
129
129
129
129
129
129
129
129
129
128
129
128
128
128
128
128
128
128
127
128
127
128
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
126
127
127
127
127
127
127
127
127
128
128
127
128
128
127
127
127
127
127
127
127
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
129
128
129
128
128
128
128
128
129
128
128
129
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
129
127
128
128
127
127
128
127
127
127
127
127
128
127
127
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
127
127
128
128
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
127
127
128
128
128
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
128
127
128
128
128
127
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
129
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
129
129
128
128
128
128
128
128
128
128
128
128
128
129
128
128
129
128
129
128
128
129
128
128
128
128
128
128
129
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
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
127
128
128
127
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
128
128
128
128
127
128
128
127
128
128
128
127
128
128
128
127
127
127
127
127
127
127
127
127
126
127
125
127
119
119
127
128
132
132
129
132
126
129
125
128
127
126
127
127
128
127
127
127
127
126
128
127
127
128
128
127
127
127
127
129
128
127
129
128
128
127
128
127
126
127
126
127
126
128
126
127
125
127
125
128
124
127
123
94
133
113
129
125
137
123
138
128
137
127
134
130
128
129
127
126
125
125
125
124
125
126
122
126
125
126
126
130
128
123
133
128
122
133
132
125
129
127
126
129
124
126
129
130
121
133
124
122
126
127
126
126
129
122
128
128
117
136
124
123
129
125
128
126
126
122
129
125
126
129
126
125
129
130
114
135
126
125
126
129
121
130
124
130
129
124
126
129
124
120
133
118
122
127
120
131
131
115
130
124
122
127
120
128
122
121
127
122
124
122
131
126
130
118
131
124
123
116
134
124
129
126
133
131
124
131
130
126
124
126
122
125
122
127
122
123
122
124
123
123
122
119
127
120
122
122
119
122
123
123
122
116
126
116
125
123
124
123
118
127
118
127
123
124
127
127
132
120
132
129
124
133
121
130
128
124
123
125
122
126
127
124
126
125
128
127
132
132
130
137
138
138
146
148
148
152
156
152
163
159
157
166
157
154
170
168
174
173
182
176
182
184
173
178
172
167
164
164
158
157
155
152
152
151
147
148
147
146
145
143
143
141
140
142
136
136
136
136
134
133
134
132
132
131
128
128
124
125
123
121
122
115
113
113
108
101
101
100
94
94
89
87
88
83
82
82
78
78
79
79
79
79
83
83
85
85
90
90
90
94
96
98
98
102
105
105
108
112
116
117
121
125
127
128
129
133
134
132
134
136
137
138
140
143
143
149
152
152
156
161
156
151
153
127
113
111
106
92
86
98
106
107
111
129
142
144
147
161
163
157
153
155
146
132
127
125
117
110
108
111
110
112
106
121
98
121
118
97
120
121
112
119
118
118
112
117
113
116
115
114
119
119
116
119
116
118
115
113
118
120
120
122
127
133
134
136
141
140
142
143
142
145
144
140
150
151
148
140
129
126
118
100
95
97
95
94
94
107
113
118
121
135
133
138
140
141
137
137
131
131
130
126
125
128
127
125
125
128
126
125
124
127
126
127
128
132
135
138
141
144
144
144
125
138
138
99
123
125
98
111
116
116
116
128
132
135
133
133
139
139
133
136
137
137
130
132
133
130
127
130
131
131
130
136
140
142
143
147
150
149
151
153
157
155
154
160
163
162
163
173
178
186
176
107
85
107
81
25
70
106
97
101
143
160
152
141
153
155
140
119
130
135
123
117
138
147
137
135
143
136
115
107
108
103
93
95
110
123
129
138
157
164
160
158
157
144
126
118
112
103
96
91
74
93
118
93
111
145
127
126
139
138
122
119
124
124
125
123
128
135
125
126
131
126
114
116
118
113
113
122
126
132
135
142
145
143
138
138
138
133
131
133
133
134
132
136
139
135
137
144
144
146
150
151
152
154
148
144
138
121
125
125
108
107
117
119
117
116
128
131
129
129
137
138
136
137
141
144
140
140
144
141
133
133
131
126
120
120
120
118
118
121
124
128
129
132
133
130
120
134
130
118
126
130
124
118
125
127
119
122
127
128
129
130
134
135
134
133
136
134
131
130
132
127
126
127
126
126
125
126
128
126
127
129
130
129
132
133
135
135
135
137
138
134
137
134
136
132
131
135
135
134
136
139
143
144
143
146
148
137
129
131
125
112
108
109
109
105
108
113
113
117
115
121
124
121
124
129
129
129
132
135
133
132
129
125
121
117
112
111
110
110
112
117
119
123
127
131
131
131
131
129
128
125
123
122
120
119
118
86
100
123
82
99
116
107
110
123
123
122
131
121
128
132
123
122
132
127
123
125
127
122
119
119
114
112
115
115
117
123
127
128
133
134
129
130
127
124
122
121
121
124
122
125
126
127
126
127
128
126
124
130
130
133
134
136
137
138
140
135
133
131
130
130
128
130
128
124
124
123
123
118
119
122
119
119
123
124
123
125
126
127
129
129
131
132
132
133
134
134
133
133
131
129
127
126
124
124
123
123
124
124
124
125
125
125
126
125
122
121
129
125
122
129
128
125
126
127
126
126
127
128
130
131
130
131
133
131
130
132
132
131
131
131
131
131
130
130
131
131
131
131
132
130
131
132
132
132
134
133
134
133
133
132
132
134
134
134
134
135
135
137
136
136
137
136
136
138
140
139
140
140
137
138
136
134
134
130
127
129
120
119
123
119
117
121
121
120
122
123
123
125
126
127
130
132
132
133
134
132
131
131
128
126
123
122
121
120
121
121
121
121
122
123
123
124
124
123
124
125
125
125
126
127
125
125
126
125
124
125
125
126
127
128
129
129
130
131
130
131
131
131
131
130
130
130
129
129
129
129
130
130
130
130
131
131
131
131
133
132
131
132
132
132
131
131
132
134
131
130
134
133
130
131
134
133
132
135
136
137
136
136
136
135
134
136
136
134
134
130
128
126
123
121
122
122
121
120
121
121
122
123
125
126
126
127
129
130
131
132
132
132
131
130
128
127
126
124
123
122
121
121
121
121
122
122
123
123
122
122
123
125
125
125
127
127
126
126
125
125
125
125
125
126
126
127
127
127
128
128
128
128
128
129
129
130
130
130
130
130
130
130
129
129
130
130
130
129
129
130
130
130
131
130
131
131
131
130
130
131
131
131
131
130
130
130
132
132
133
132
132
132
132
132
133
133
133
134
133
133
133
131
130
128
127
125
123
122
122
122
122
122
122
122
122
124
125
126
127
128
129
130
131
131
131
130
129
128
127
126
125
124
123
123
122
122
122
122
123
122
123
124
124
125
126
127
127
128
128
128
127
128
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
129
129
129
130
129
129
129
129
128
128
128
128
128
128
128
128
128
128
129
129
129
129
129
129
130
129
129
129
129
129
129
129
129
129
129
129
130
130
130
131
131
131
131
132
131
132
132
132
131
129
127
126
124
123
123
122
122
121
121
121
122
123
124
125
127
128
129
130
130
131
131
131
130
129
128
127
127
126
124
124
123
123
122
122
122
122
122
123
124
125
126
126
127
127
127
127
127
127
127
127
127
127
126
126
126
126
126
126
126
127
127
127
128
128
128
129
129
128
129
129
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
128
127
128
129
129
128
128
127
127
127
128
128
128
128
128
128
128
128
129
130
130
131
131
130
130
130
129
128
127
125
124
123
122
121
121
120
120
120
121
121
123
124
125
126
127
128
128
128
128
128
128
127
126
125
125
124
123
122
122
121
121
120
119
121
122
123
123
125
125
126
127
127
127
128
128
128
127
127
126
127
126
126
126
125
125
125
126
126
127
127
127
128
128
128
128
128
128
128
128
128
129
128
128
127
127
127
127
127
128
128
128
128
128
129
129
129
129
130
130
130
130
130
130
130
130
130
131
130
130
130
128
127
127
125
124
123
123
123
122
123
123
123
123
124
125
126
127
128
128
129
129
129
129
129
128
127
127
126
126
125
125
124
124
124
124
124
125
125
125
126
126
126
126
125
124
125
126
125
125
126
125
125
125
125
125
126
126
126
127
127
127
128
128
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
127
128
128
128
129
129
129
129
129
129
129
130
130
130
131
131
132
132
131
130
128
125
124
123
123
123
123
122
122
122
123
124
125
127
128
129
129
130
131
131
131
131
130
129
128
128
127
127
126
126
126
126
126
126
127
127
127
128
128
129
129
130
130
129
129
129
128
128
128
128
127
126
125
123
124
125
125
126
127
127
128
129
128
129
130
130
130
130
130
129
130
129
129
129
129
128
128
128
128
129
129
129
129
130
130
130
130
130
130
130
130
130
130
130
129
130
129
128
129
129
129
130
130
130
130
130
130
131
131
130
131
131
131
131
130
127
125
125
124
124
124
123
123
124
123
124
125
126
127
128
129
128
129
130
130
130
130
128
128
127
126
126
125
125
125
125
125
125
125
125
126
126
126
126
127
127
127
127
127
127
126
125
125
125
125
125
126
126
126
126
126
126
127
128
128
129
129
129
129
129
129
129
129
128
128
128
128
128
128
128
128
128
128
128
128
129
129
129
129
129
130
130
130
130
129
129
129
129
129
129
129
129
129
129
129
129
130
130
130
128
127
127
126
126
126
126
126
126
125
125
125
126
127
127
128
128
128
128
128
128
129
129
128
128
127
127
127
127
127
126
126
126
126
127
127
127
127
127
127
128
127
127
127
127
127
127
127
126
126
126
127
127
127
127
127
128
128
129
129
129
129
130
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
128
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
128
128
129
129
128
128
129
128
128
129
129
129
129
128
128
128
128
127
127
127
127
126
126
126
126
126
126
126
126
126
126
126
126
127
127
127
127
127
127
127
127
127
127
127
126
126
127
126
127
127
127
127
127
127
127
128
127
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
128
128
128
127
127
127
127
128
128
128
128
128
127
127
128
127
127
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
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
129
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
127
127
127
127
128
127
128
128
127
127
128
128
128
128
127
127
127
127
127
127
127
127
127
128
127
127
128
128
127
127
127
127
128
128
128
127
127
127
128
128
128
128
128
128
128
128
128
127
128
127
127
128
127
127
128
128
127
128
127
128
128
127
127
128
128
128
127
128
128
128
127
127
127
128
127
127
128
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
127
127
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
128
129
129
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
128
128
127
127
127
127
127
127
127
127
128
128
128
127
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
127
128
128
128
128
127
128
128
128
128
128
128
128
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
127
128
128
127
127
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
128
127
127
127
127
127
128
128
128
128
128
128
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
128
128
128
128
127
127
128
128
128
127
127
127
127
127
127
127
128
127
127
127
127
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
127
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
127
128
127
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
127
128
128
127
128
128
128
128
127
127
127
127
127
127
127
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
128
127
127
127
128
128
128
127
128
128
127
127
127
127
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
127
127
127
127
128
128
127
127
128
127
127
128
128
127
127
127
127
127
128
128
128
128
127
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
127
127
127
128
127
127
127
127
128
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
128
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
127
127
127
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
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
129
128
128
128
128
129
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
127
128
128
128
128
127
128
127
127
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
128
128
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
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
127
127
128
128
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
127
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
128
128
128
128
127
128
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
128
128
127
127
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
128
127
127
127
127
127
127
128
127
127
127
127
127
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
128
128
128
128
128
128
127
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
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
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
128
128
127
127
127
128
127
128
128
127
127
128
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
127
128
128
128
128
128
127
127
127
128
128
128
128
128
128
128
128
128
128
128
127
128
128
127
127
127
127
127
127
127
128
128
128
128
128
128
127
128
128
128
128
127
127
128
127
127
128
127
128
128
128
127
128
128
128
128
128
128
128
128
128
127
127
127
128
127
127
127
127
127
128
127
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
127
127
126
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
127
126
126
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
127
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
127
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
128
128
128
129
129
128
128
128
129
128
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
128
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
128
129
129
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
127
127
128
127
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
127
127
126
126
126
126
127
127
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
126
127
127
127
126
126
127
126
126
126
126
126
127
126
127
126
126
126
126
126
126
127
127
126
126
126
126
126
126
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
128
128
128
128
128
127
127
128
127
127
128
127
128
128
128
128
128
128
128
128
128
128
127
127
128
128
127
128
128
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
126
127
126
127
127
127
127
127
126
127
127
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
128
127
128
128
128
127
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
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
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
128
127
127
127
128
127
127
127
128
128
128
128
128
127
128
127
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
127
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
127
128
127
128
128
128
128
128
127
128
127
127
128
128
128
127
127
127
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
128
127
127
127
127
127
127
128
127
128
128
127
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
129
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
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
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
127
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
127
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
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
128
128
128
128
128
128
128
127
127
127
127
128
128
127
127
127
127
127
128
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
127
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
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
128
128
128
128
127
128
128
128
128
127
127
127
127
127
127
128
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
128
128
128
127
127
127
127
127
127
127
127
128
127
127
127
127
128
128
127
127
128
128
128
128
128
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
128
128
128
128
128
128
128
127
127
128
127
127
128
127
127
127
127
128
127
127
127
128
127
128
127
127
127
127
127
127
127
128
128
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
127
127
127
127
128
128
127
127
127
127
127
128
128
128
128
128
127
127
128
128
128
128
127
127
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
127
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
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
127
128
128
128
128
127
127
128
128
128
127
128
128
128
127
128
128
127
127
127
128
128
127
128
127
127
128
128
128
127
128
127
127
127
127
127
127
127
128
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
127
127
128
128
127
128
127
127
127
127
127
128
127
127
127
127
127
128
128
128
127
128
128
127
128
128
127
127
127
127
127
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
127
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
128
128
128
128
128
128
127
127
127
128
127
127
127
127
128
127
128
128
128
127
128
128
128
128
128
128
128
128
128
128
127
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
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
127
128
127
128
128
128
128
128
127
128
128
127
128
128
128
127
128
128
128
128
128
128
128
128
127
128
127
127
127
127
128
128
128
127
128
128
128
127
127
128
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
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
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
127
128
127
127
127
127
128
128
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
128
128
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
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
128
129
128
128
128
128
129
128
129
129
128
128
128
128
128
128
129
129
129
129
129
129
128
128
129
129
128
129
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
127
128
127
127
128
127
127
127
127
128
128
128
128
128
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
128
128
127
127
127
127
127
127
127
127
127
128
128
128
127
128
128
128
128
128
128
127
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
129
129
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
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
127
128
128
128
128
128
128
128
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
126
126
126
126
126
126
126
126
126
126
126
127
126
126
126
127
127
127
127
126
126
127
126
126
126
126
126
126
126
126
126
126
126
127
126
127
127
126
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
126
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
128
127
127
128
128
128
127
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
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
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
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
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
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
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
127
128
127
127
127
127
127
127
127
127
127
128
128
128
128
127
127
128
127
127
127
127
127
127
127
127
127
127
127
128
127
127
126
127
127
127
127
127
127
126
127
128
127
127
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
127
127
127
127
127
128
128
128
127
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
127
127
127
127
128
127
127
127
127
127
127
128
128
128
127
127
127
127
128
128
128
128
128
128
127
127
127
127
127
127
127
128
128
128
127
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
127
128
127
128
128
128
127
127
127
128
128
128
128
128
127
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
128
128
128
127
127
128
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
128
127
128
127
127
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
128
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
127
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
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
127
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
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
127
127
127
127
128
127
128
128
128
127
128
127
127
127
127
127
127
127
127
128
128
128
128
128
128
127
127
127
128
127
127
128
128
128
127
128
127
127
127
128
128
128
127
127
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
128
128
128
127
127
128
127
127
127
128
128
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
127
128
127
127
127
127
127
127
128
128
127
127
127
127
128
128
128
128
127
128
128
128
128
128
128
128
128
127
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
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
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
128
127
128
127
128
128
128
128
128
128
128
127
128
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
127
127
128
128
128
128
127
128
128
128
128
128
127
128
128
128
127
127
128
128
127
128
128
127
127
127
128
128
127
127
128
128
128
127
128
128
127
127
128
127
128
128
128
128
128
128
128
128
128
128
128
127
128
127
128
128
127
127
128
128
128
128
128
128
128
128
127
126
126
127
127
128
127
127
126
126
128
128
128
127
127
126
128
128
127
126
127
127
128
128
127
128
127
127
128
127
127
127
127
128
128
128
128
127
127
127
128
128
128
127
127
128
128
128
128
127
127
127
128
128
128
128
128
127
0
