Cloned library HDF5-1.14.1 with extra build files for internal package management.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

120006 lines
299 KiB

components
1
height
400
width
300
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
12
8
5
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
61
52
39
25
10
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
93
86
77
65
48
16
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
108
106
104
99
88
48
23
8
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
109
107
106
106
105
98
60
26
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
107
105
104
104
105
105
100
73
37
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
108
105
104
104
105
105
104
93
69
29
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
109
105
103
103
104
106
106
103
89
59
12
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
111
105
103
103
104
106
107
106
100
86
29
10
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
113
105
102
101
102
105
107
108
106
100
55
20
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
115
107
102
101
100
101
104
107
108
107
88
42
15
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
118
109
103
100
99
100
102
105
108
108
99
63
30
7
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
119
111
104
100
97
100
101
103
106
109
105
82
48
17
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
3
3
4
5
6
7
7
8
9
9
9
9
9
8
7
7
6
4
3
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
119
113
106
100
97
100
101
102
104
108
108
95
65
30
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
3
4
6
7
9
11
13
16
18
20
22
24
26
27
27
28
28
27
25
24
22
20
16
13
11
8
6
3
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
119
115
109
102
97
100
103
104
104
106
108
103
79
46
15
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
4
6
9
12
17
21
25
30
34
40
44
48
52
55
58
60
61
62
62
60
58
56
52
48
41
35
29
23
18
11
7
4
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
115
114
111
106
99
97
104
106
106
106
107
106
91
65
30
7
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
3
6
9
13
20
26
33
41
49
59
66
74
80
87
94
98
102
106
109
112
113
114
115
115
115
114
112
109
105
98
91
82
72
61
46
36
26
18
12
5
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
109
111
110
107
103
97
104
107
108
107
107
107
97
77
44
16
7
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
4
6
11
17
24
31
40
52
62
71
79
87
95
100
104
107
110
113
115
117
119
120
121
122
123
124
124
125
125
124
124
123
120
118
113
108
101
87
75
62
49
36
21
13
7
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
102
104
106
107
106
98
101
106
109
108
108
107
101
85
56
27
14
6
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
6
10
15
22
33
43
53
64
74
85
93
99
104
109
113
115
117
119
120
121
122
123
124
124
125
126
126
127
128
128
129
129
129
129
129
129
127
125
122
115
106
96
84
70
50
37
25
16
9
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
95
97
101
104
106
100
99
104
109
110
108
108
104
92
67
38
23
12
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
3
6
12
18
27
36
48
63
75
85
95
103
110
113
116
117
118
119
120
120
121
121
122
122
122
123
123
124
124
125
126
126
127
128
129
129
130
130
130
131
131
130
129
127
122
114
104
85
69
53
38
25
11
6
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
90
92
95
99
105
105
98
102
108
111
110
109
106
98
79
48
33
19
9
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
5
10
17
29
41
55
69
83
99
107
112
115
116
117
118
118
119
119
120
120
120
120
120
119
119
119
119
119
119
119
120
121
122
123
124
126
127
128
129
130
131
131
131
131
131
131
129
128
120
108
91
73
53
31
18
10
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
89
90
93
96
99
105
100
98
101
110
111
110
108
101
85
68
54
37
21
7
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
9
16
26
38
52
74
88
100
109
114
115
116
117
117
118
118
117
117
115
113
111
110
109
108
108
108
109
109
110
110
111
112
113
114
115
116
117
118
119
121
123
124
126
128
129
131
131
131
131
132
131
130
127
120
108
83
62
43
26
14
4
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
88
89
91
95
98
104
103
99
98
106
110
110
108
102
90
71
62
50
36
18
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
8
15
29
42
58
73
88
102
108
111
114
116
116
116
116
115
113
110
108
107
106
105
105
105
106
106
107
107
108
109
109
110
111
112
113
114
115
116
117
118
119
120
121
123
124
125
126
128
129
130
131
132
132
132
131
129
126
115
101
83
63
44
21
11
5
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
87
88
90
93
99
103
104
101
97
99
107
109
108
103
92
74
65
57
47
31
9
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
8
15
25
38
59
74
88
99
107
114
115
115
115
115
113
111
109
107
105
103
102
102
102
102
103
104
105
106
108
109
111
112
113
114
116
117
118
118
119
119
120
120
120
121
122
122
123
124
125
126
128
129
130
131
132
132
133
133
133
130
124
113
99
81
53
34
20
10
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
87
87
88
92
100
103
104
103
99
93
101
104
105
101
93
75
66
60
54
44
18
7
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
4
11
22
35
51
68
90
102
110
114
115
115
115
113
111
110
106
103
100
99
98
99
100
101
102
104
106
108
110
113
115
118
120
123
124
126
128
129
130
130
130
130
129
129
128
127
126
126
126
126
126
126
127
128
129
130
131
132
133
133
134
134
133
131
125
115
90
68
46
27
13
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
87
87
88
92
102
105
105
104
102
95
90
97
99
97
93
76
66
61
57
54
32
13
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
6
12
28
46
66
86
104
113
114
115
115
115
114
112
107
102
98
95
95
96
96
98
99
101
103
106
109
114
119
124
129
133
138
142
145
148
150
152
153
153
153
152
150
149
147
144
142
138
136
133
131
129
128
128
128
129
129
130
131
132
133
134
134
135
135
134
133
125
108
84
58
33
11
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
90
90
91
95
104
108
107
106
104
102
91
86
86
89
89
83
71
63
60
58
48
25
10
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
13
26
44
74
94
107
113
114
115
115
114
112
108
100
96
94
93
93
95
96
97
100
103
110
117
125
133
141
151
158
164
169
174
178
181
183
185
186
187
187
187
187
186
185
183
182
179
176
172
168
164
159
154
148
143
139
136
133
132
132
132
133
133
134
135
135
135
135
134
132
125
110
87
49
25
11
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
93
93
96
102
107
108
107
106
105
104
96
88
83
81
82
80
75
69
64
61
55
35
16
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
9
20
38
59
81
101
108
112
114
114
113
110
105
100
96
93
92
92
93
94
98
102
109
117
127
139
149
157
164
171
178
182
185
187
189
191
192
193
193
194
194
194
193
193
193
192
191
189
188
186
184
181
179
176
173
169
164
160
155
150
143
140
137
135
134
134
135
135
135
135
135
134
132
127
117
89
61
36
17
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
96
97
101
106
109
109
107
106
105
105
101
95
87
80
77
76
75
71
67
63
59
43
23
7
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
9
27
47
69
88
103
112
113
113
113
111
105
100
96
92
90
91
92
94
98
103
114
123
134
145
155
167
174
179
184
188
192
193
195
195
196
196
196
196
196
195
195
194
194
193
193
192
192
191
190
189
188
186
185
183
182
179
177
174
170
166
160
155
150
145
141
138
136
136
135
135
135
135
135
134
131
117
96
71
44
22
5
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
99
100
104
109
110
108
106
105
105
105
104
101
95
86
76
72
72
71
69
66
62
50
30
11
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
5
13
26
55
78
96
108
112
113
112
111
108
103
95
91
89
89
89
93
97
103
112
122
139
152
163
172
180
187
190
193
195
196
196
196
196
196
196
195
194
193
192
191
189
188
187
186
186
185
185
185
185
185
185
184
184
183
183
182
181
181
179
178
174
170
165
159
153
146
142
139
137
136
136
135
135
135
135
132
123
105
80
51
19
8
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
102
103
107
110
110
104
103
103
104
105
105
105
101
94
81
70
69
69
68
67
64
56
36
15
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
14
30
55
93
104
110
113
114
112
110
104
97
90
87
87
87
89
91
99
110
124
140
155
171
180
186
190
193
195
196
197
197
197
197
196
195
193
192
189
186
184
181
179
175
173
172
170
169
169
169
170
171
173
175
177
178
179
180
181
181
181
180
179
178
178
176
173
170
162
155
149
143
139
137
136
136
135
135
135
134
129
116
92
47
23
9
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
103
105
108
110
110
103
101
102
103
105
105
105
103
98
87
70
68
67
67
66
65
60
42
20
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
7
23
47
75
100
109
112
113
113
111
104
95
89
86
84
86
88
92
100
111
135
151
165
177
185
191
194
195
196
197
197
196
195
194
192
189
185
181
177
172
165
159
154
149
144
138
134
130
127
125
123
123
124
125
127
132
136
141
146
151
158
164
169
173
176
177
177
177
176
175
174
172
168
163
156
146
141
138
136
136
135
135
135
132
128
104
68
37
14
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
104
105
107
109
110
103
101
101
102
104
104
104
101
95
86
70
67
66
66
66
65
61
44
23
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
7
27
54
79
97
107
112
112
111
108
101
92
87
85
85
86
90
99
112
128
144
164
175
183
188
193
195
196
196
196
195
194
192
189
185
180
173
167
160
153
145
135
128
122
115
110
103
99
95
92
89
87
87
87
87
88
91
94
98
103
108
117
125
133
141
149
159
165
170
173
174
174
173
172
170
167
161
154
148
142
138
136
136
135
134
133
124
104
76
45
18
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
103
105
107
109
110
105
102
101
102
104
104
102
97
91
84
71
66
65
65
65
65
62
46
24
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
10
24
58
82
98
107
111
112
110
105
98
91
84
83
84
87
92
106
122
138
155
170
182
188
192
195
196
196
196
195
193
191
186
182
176
169
162
151
142
133
124
115
104
97
91
85
80
76
73
71
69
67
66
66
66
66
66
68
69
72
74
78
84
89
96
103
112
125
135
145
153
161
168
171
172
172
171
168
164
159
154
147
141
138
136
135
135
133
124
107
81
48
15
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
103
104
106
108
109
106
103
102
103
104
103
99
92
85
82
74
67
64
64
65
65
62
46
24
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
10
26
51
88
101
108
111
112
109
103
96
88
84
81
84
88
95
107
130
150
165
177
187
192
195
196
196
196
195
193
190
187
182
174
166
157
148
137
123
112
103
93
85
76
71
67
63
61
59
58
57
57
57
57
57
57
57
57
57
58
58
59
60
62
64
67
72
78
88
98
110
121
134
150
158
164
168
170
171
170
168
165
159
150
144
140
137
136
135
133
127
112
85
39
18
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
102
103
105
106
107
107
105
104
104
105
104
93
85
80
80
78
69
65
64
65
65
62
45
23
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
8
25
52
86
106
109
110
111
111
103
92
85
81
80
82
87
98
114
135
161
175
185
191
195
197
197
197
196
194
191
187
182
176
169
156
144
132
120
107
91
81
73
66
61
57
56
55
55
54
54
54
54
54
55
55
55
55
55
55
56
56
56
56
57
57
57
58
59
60
62
66
72
80
92
112
129
143
156
165
170
171
171
170
169
163
155
147
141
137
136
135
134
130
122
79
42
17
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
100
101
102
103
104
107
106
106
107
108
97
85
80
80
81
80
73
67
64
65
65
61
42
19
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
9
33
64
92
106
109
110
110
107
101
87
82
79
79
82
93
110
131
153
171
186
191
195
197
197
197
195
193
190
187
180
172
162
151
138
119
104
91
80
70
61
58
55
54
53
53
53
53
53
53
54
54
54
54
54
54
54
55
55
55
55
55
55
56
56
56
56
56
57
57
57
58
59
60
62
68
76
89
105
123
145
159
166
170
170
169
167
164
157
148
140
137
136
135
133
124
94
58
26
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
99
99
99
100
102
103
105
106
107
109
91
82
80
81
82
80
72
67
65
65
65
57
36
14
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
6
31
64
88
103
108
109
109
105
98
89
81
79
79
84
93
116
138
157
174
185
194
196
197
197
196
193
191
187
182
176
164
151
138
123
108
90
78
69
63
58
55
54
53
53
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
54
55
55
55
55
55
55
56
56
56
56
57
57
58
58
59
61
64
69
76
86
106
124
139
153
164
168
168
168
165
160
150
144
139
136
135
131
119
94
62
26
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
98
98
97
97
99
100
103
105
107
109
88
81
80
81
81
78
70
66
65
65
64
52
30
10
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
7
21
61
87
101
107
109
109
105
98
89
81
77
79
85
96
113
142
162
177
187
194
197
197
196
195
193
189
184
178
169
159
141
125
110
96
82
69
62
58
55
53
52
52
52
52
52
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
54
54
54
54
54
54
55
55
55
56
56
56
57
57
57
58
59
60
62
66
78
90
105
122
139
156
164
168
168
166
160
154
147
142
137
135
131
118
95
61
19
7
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
98
97
96
95
96
98
100
103
106
109
90
82
81
81
78
74
68
66
65
66
63
44
22
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
6
19
45
88
101
107
108
108
106
98
88
81
77
78
84
97
115
138
167
181
190
195
198
198
196
194
191
188
182
174
164
151
137
114
98
84
73
64
57
54
53
52
52
52
52
52
52
52
52
52
52
52
53
53
53
53
53
53
52
52
52
52
52
52
52
53
53
53
53
53
54
54
54
55
55
56
56
56
57
57
58
58
59
62
66
75
89
106
132
148
159
165
167
166
163
157
150
143
137
135
131
120
98
47
21
7
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
98
97
96
95
95
96
96
99
104
109
98
83
80
80
73
70
67
66
66
66
60
33
14
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
15
39
75
103
106
108
108
107
99
87
80
76
75
82
96
117
141
165
185
192
196
198
198
196
193
190
187
182
172
160
144
127
109
87
74
65
58
54
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
51
51
51
51
51
51
51
51
52
52
52
52
53
53
54
54
55
55
56
57
57
57
58
58
59
61
65
71
94
116
136
153
164
167
168
166
162
153
141
138
135
132
126
88
46
18
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
97
97
96
95
95
95
95
96
100
107
107
79
76
80
73
70
68
67
66
64
40
17
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
14
41
73
100
107
108
107
105
99
85
78
75
76
80
101
126
150
172
188
196
198
199
198
195
191
188
183
176
167
147
129
110
92
77
63
58
54
52
52
51
51
51
51
51
51
52
52
52
52
52
52
52
52
52
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
52
52
53
53
54
55
56
56
57
58
58
59
60
64
72
87
108
132
158
165
167
166
164
157
148
141
137
134
125
96
58
23
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
97
97
96
95
95
95
95
96
98
102
108
78
75
80
75
71
69
67
63
54
23
9
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
8
32
64
91
104
107
107
105
99
90
77
75
76
82
94
125
150
171
186
194
198
199
197
195
191
186
181
173
162
147
122
104
87
74
63
56
54
52
51
51
51
51
51
51
51
51
52
52
52
52
52
52
52
51
51
51
51
51
51
51
51
51
51
51
50
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
52
52
53
54
54
56
56
57
58
59
60
63
70
80
96
125
144
157
164
165
164
159
151
143
138
132
120
93
58
21
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
97
97
96
96
96
96
95
95
96
99
108
80
75
78
76
72
69
64
55
38
11
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
21
55
83
101
106
107
105
99
91
81
74
75
81
94
114
149
171
185
194
198
199
197
194
191
187
180
171
158
143
124
99
83
71
62
56
53
52
51
51
51
51
51
51
51
51
51
52
52
52
52
52
51
51
51
51
50
50
50
50
50
50
50
50
50
50
50
50
50
49
49
49
49
49
49
50
50
50
50
50
50
51
51
51
52
52
54
54
55
56
57
58
60
62
66
73
92
113
132
149
160
166
164
159
153
145
137
132
117
92
54
14
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
96
97
96
96
96
97
96
95
95
96
107
87
77
74
77
72
67
58
43
22
5
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
8
41
76
96
105
107
105
100
92
83
74
73
78
91
111
138
171
186
194
198
199
198
194
190
186
181
171
157
140
121
101
78
67
59
55
52
51
51
51
50
50
50
51
51
51
51
52
52
52
52
52
51
51
51
50
50
50
50
50
50
50
50
50
49
49
49
49
49
48
48
48
48
48
48
48
48
48
49
49
49
50
50
50
50
51
51
52
52
53
54
56
57
58
59
60
62
69
83
102
123
145
161
164
164
161
154
144
138
132
119
92
38
15
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
96
96
96
96
96
97
98
97
95
95
103
101
83
69
75
69
61
47
29
11
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
7
17
65
91
103
106
106
102
95
84
76
72
74
86
107
133
161
188
195
198
199
198
195
190
186
181
174
158
139
118
98
79
63
57
54
52
51
51
50
50
50
50
50
51
51
51
52
52
52
52
52
51
51
50
50
50
50
50
49
49
49
49
49
49
48
48
48
47
47
47
47
47
46
46
46
46
46
46
47
47
47
48
49
49
50
50
50
51
51
51
52
53
55
56
57
58
59
61
65
75
91
114
147
159
164
164
163
155
145
139
133
125
79
36
12
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
96
96
96
96
96
97
99
99
98
95
96
103
90
72
66
65
53
36
19
7
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
16
42
92
101
105
106
103
94
83
75
71
72
85
108
135
162
185
198
199
198
197
195
189
184
178
170
157
132
110
90
74
62
54
53
52
51
51
50
50
50
50
50
51
51
52
52
52
52
52
51
51
50
49
49
49
49
49
49
49
49
49
48
48
48
48
47
47
47
47
47
46
46
46
46
46
45
45
45
45
45
45
45
46
46
47
48
49
50
50
51
51
51
52
53
54
56
57
59
60
62
66
74
101
126
146
160
165
164
159
150
142
136
124
88
48
15
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
96
96
96
95
95
97
99
101
101
97
96
102
98
86
65
57
49
34
18
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
10
30
64
99
104
105
103
99
87
77
72
72
76
101
129
156
179
194
199
199
197
195
191
184
178
169
157
139
111
91
75
63
56
53
52
51
51
50
50
50
50
50
51
52
52
52
52
52
52
51
50
50
49
49
49
49
49
49
49
49
49
48
48
48
48
47
47
47
47
47
47
47
47
46
46
46
46
46
45
45
45
45
45
45
45
45
46
46
48
49
50
50
51
51
52
52
53
54
57
58
60
62
65
77
95
117
138
156
164
163
159
152
143
133
117
85
47
13
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
95
95
95
95
95
97
99
101
103
101
96
99
101
94
72
50
41
29
16
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
19
45
82
103
105
104
100
94
80
73
72
75
86
120
149
173
190
199
199
198
195
191
186
179
170
158
141
120
91
75
64
56
53
52
51
50
50
50
50
50
50
51
51
52
52
52
52
52
51
50
50
49
49
49
49
49
49
49
49
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
47
47
47
47
46
46
45
45
44
44
44
44
45
45
46
47
49
50
51
51
51
52
53
54
56
58
59
61
66
75
91
111
134
156
162
162
159
152
141
132
113
83
42
8
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
95
95
95
95
95
97
99
101
104
104
98
98
100
98
84
48
34
22
13
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
8
30
60
95
105
105
102
96
88
74
71
73
82
100
139
167
186
197
200
198
196
192
187
181
172
160
143
123
100
75
63
56
53
52
51
50
50
50
49
50
50
51
52
52
53
53
52
52
51
50
49
49
49
49
49
49
49
49
49
48
48
48
48
48
48
48
48
48
48
48
49
49
49
49
49
49
49
49
49
48
48
47
47
46
45
45
44
44
44
44
44
45
46
48
49
50
51
51
51
52
53
55
57
59
61
64
72
85
105
137
153
161
162
160
149
141
132
114
80
25
9
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
95
95
94
95
95
97
99
102
104
106
103
98
99
101
98
57
33
17
7
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
15
43
76
101
106
103
98
91
81
70
70
77
92
117
159
183
195
200
200
196
193
188
183
176
164
147
126
104
82
63
56
53
52
51
50
50
49
49
49
50
51
52
52
53
53
53
52
51
50
49
49
49
49
49
49
49
49
49
48
48
48
48
48
48
49
49
49
49
49
49
49
49
49
49
49
50
50
50
50
51
51
50
50
49
47
46
45
44
44
44
44
44
44
45
47
48
50
51
51
51
52
53
54
56
59
61
63
68
77
106
134
152
162
163
160
150
140
131
119
59
22
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
94
94
94
95
95
99
102
104
105
107
107
102
100
100
103
89
47
20
6
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
27
61
92
104
105
100
93
83
73
68
74
88
111
142
182
194
200
200
198
193
188
182
175
167
147
125
102
82
65
55
53
52
51
50
49
49
49
49
50
51
52
53
53
53
53
52
51
50
49
49
49
49
49
49
49
49
49
48
48
48
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
50
50
50
51
51
51
52
52
52
51
50
48
46
44
44
43
43
43
44
45
47
48
50
51
51
52
52
52
55
58
60
62
64
73
93
119
143
160
163
161
153
143
133
115
66
28
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
94
94
94
95
96
101
103
105
107
107
108
105
102
100
102
97
67
34
9
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
9
39
72
97
104
104
96
87
78
70
69
79
99
127
160
191
198
200
198
195
190
183
177
168
157
131
108
87
70
58
53
52
51
50
49
49
49
49
50
51
52
53
53
53
53
52
51
50
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
48
47
47
46
46
46
46
46
47
47
48
48
49
50
51
51
52
52
53
53
52
52
50
48
46
45
44
43
43
44
44
46
47
50
51
51
52
52
53
54
57
59
62
66
75
91
114
140
159
161
159
153
142
127
101
61
23
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
93
94
94
95
97
102
104
106
107
108
109
108
104
101
102
101
84
51
18
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
16
51
81
100
103
102
92
82
74
69
72
87
113
144
176
198
200
199
196
192
186
179
171
160
145
115
92
74
62
55
52
51
50
50
49
49
49
50
50
52
53
53
53
53
53
51
50
50
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
48
47
46
46
45
44
44
44
44
44
45
45
46
47
48
48
50
50
51
52
52
53
53
54
53
53
51
50
48
46
44
43
43
43
44
45
47
49
50
51
52
52
53
54
56
59
62
66
74
89
112
145
156
160
159
152
136
122
92
53
15
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
93
94
94
96
98
103
105
107
107
108
109
109
106
103
101
102
96
68
32
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
25
63
88
102
103
99
88
78
72
69
75
97
127
160
188
202
200
198
194
189
181
174
164
150
131
99
79
65
56
53
51
51
50
49
49
49
49
50
51
53
53
54
53
53
52
51
50
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
48
48
46
45
44
43
43
43
43
43
43
44
44
45
46
46
47
48
49
50
51
52
52
53
54
54
54
54
54
53
51
49
47
44
44
43
43
44
45
47
49
50
51
52
52
52
54
56
60
62
66
72
85
120
143
156
161
160
146
135
116
86
38
5
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
92
93
94
96
100
105
106
107
108
108
109
109
108
106
101
102
101
83
52
12
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
5
33
74
95
102
103
95
83
75
70
69
80
109
143
174
197
203
199
195
191
185
177
168
155
138
116
84
68
58
54
52
51
50
49
49
49
49
50
51
52
53
54
54
53
52
51
50
49
49
49
49
49
49
49
49
49
49
49
50
50
50
49
48
47
45
43
42
42
42
42
42
43
43
43
44
44
45
46
47
47
48
49
50
51
52
52
53
54
54
54
55
55
55
54
53
51
47
45
44
43
43
43
44
46
48
50
52
52
52
52
53
56
60
62
65
69
88
119
143
158
162
158
144
132
112
77
15
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
92
93
95
97
102
106
107
107
107
108
108
109
109
108
103
102
102
96
77
35
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
8
49
83
98
101
101
90
79
73
70
71
91
128
162
188
201
202
196
192
187
180
170
158
142
121
96
69
59
54
52
51
50
49
48
48
48
49
51
52
53
54
54
53
53
52
50
49
49
49
49
49
49
49
49
49
49
50
50
50
50
49
47
44
43
42
41
42
42
42
43
43
44
45
46
47
47
48
49
49
49
50
50
51
51
52
52
53
54
54
54
55
55
55
55
55
54
52
50
47
45
43
43
43
44
45
47
50
51
52
52
52
53
55
58
62
64
69
83
109
137
157
161
157
145
131
118
57
20
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
92
94
96
99
103
107
107
107
107
107
107
108
109
108
106
102
102
100
86
54
10
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
13
60
88
99
101
100
85
76
71
70
73
102
142
174
195
202
201
194
189
183
175
164
150
130
107
83
62
56
53
52
51
49
48
48
48
49
50
52
53
54
54
54
53
52
51
50
49
49
49
49
49
49
49
49
49
50
50
50
49
48
46
43
42
41
41
41
42
43
44
45
46
47
48
48
49
49
50
50
50
50
50
51
51
52
52
53
53
54
54
55
55
55
55
55
55
55
54
52
50
48
46
44
43
43
44
45
48
50
51
52
52
53
54
55
58
62
66
72
86
108
138
159
159
154
143
127
94
46
16
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
92
94
96
100
104
107
107
107
107
106
106
107
108
109
108
103
103
102
94
73
17
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
6
19
69
91
100
100
98
82
74
70
71
77
115
155
183
199
202
199
191
186
180
171
157
140
118
94
73
57
54
52
51
50
49
48
48
48
49
51
52
53
54
54
54
53
52
51
50
49
49
49
49
49
49
49
49
50
50
50
49
48
46
43
41
41
41
41
42
44
45
46
47
48
49
49
50
50
50
50
50
50
50
50
51
51
51
52
52
53
54
54
55
55
55
55
55
55
55
55
54
52
50
48
45
44
43
43
44
45
48
50
51
52
53
53
54
56
58
63
66
73
87
111
146
157
158
152
140
116
75
37
9
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
92
94
97
101
105
107
107
107
107
106
105
106
107
109
109
104
103
102
99
88
29
9
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
8
25
77
94
100
99
95
78
72
69
72
82
128
167
190
201
202
196
188
182
176
166
150
129
106
83
64
54
53
51
50
49
48
48
48
49
50
51
53
53
54
54
53
52
51
50
50
49
49
49
49
49
49
49
50
50
50
50
48
46
43
41
40
41
42
43
44
46
48
48
49
49
50
50
50
50
50
50
50
50
50
50
50
50
51
51
51
52
53
54
54
55
55
55
55
55
55
55
55
54
53
51
47
45
44
43
43
44
46
48
50
52
53
53
53
54
56
60
63
67
73
85
124
147
157
158
152
130
103
62
24
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
93
95
98
102
106
107
107
107
106
105
104
105
106
108
109
105
103
103
101
97
46
16
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
11
32
84
96
100
98
93
75
70
68
73
89
141
177
196
202
201
193
186
179
172
162
141
118
94
73
59
53
52
51
50
48
48
48
48
49
50
52
53
53
54
54
53
52
51
50
50
50
49
49
49
49
49
50
50
50
50
49
46
43
41
40
40
41
43
45
47
48
49
49
49
50
50
50
50
50
50
51
51
51
50
50
50
50
49
49
49
50
51
53
53
54
55
55
55
55
55
55
55
55
54
53
50
47
45
44
43
43
44
46
48
50
52
53
53
54
54
57
61
64
67
71
93
127
149
160
160
142
126
90
47
10
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
93
95
98
103
107
107
107
106
106
105
103
104
105
106
109
107
104
103
102
101
65
27
8
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
15
42
90
97
100
97
88
72
69
69
78
100
157
186
199
202
201
189
182
175
166
154
128
103
81
64
55
52
51
50
49
48
48
48
49
49
51
53
53
53
53
53
53
51
50
50
50
50
50
49
49
50
50
50
50
50
50
46
42
40
40
40
42
44
46
48
48
49
49
49
50
50
51
52
53
54
55
56
56
55
54
53
51
50
49
49
48
47
47
48
50
51
53
54
54
55
55
55
55
55
55
54
52
50
48
46
44
43
44
44
46
48
51
52
53
53
54
55
58
61
64
67
73
92
122
149
161
159
140
120
88
35
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
94
95
99
103
107
107
107
106
105
104
103
103
104
105
108
107
104
103
102
102
78
34
11
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
19
49
93
98
99
95
85
70
68
70
82
109
167
190
200
201
199
186
179
171
161
147
118
93
73
59
54
52
51
50
48
48
48
48
49
50
51
53
53
53
53
53
52
51
50
50
50
50
50
50
50
50
50
50
50
50
48
42
40
40
40
41
44
46
47
48
48
49
49
50
51
53
58
62
67
71
74
77
77
76
74
71
65
60
56
52
49
47
47
47
47
48
50
51
53
54
54
55
55
55
55
54
53
52
50
47
45
44
44
44
45
46
49
51
52
53
54
55
57
59
62
65
69
78
99
126
154
161
153
136
108
68
15
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
94
95
99
103
107
107
107
106
105
103
103
103
103
105
108
108
104
103
103
102
87
42
15
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
7
23
55
94
98
98
94
83
69
68
72
87
118
175
194
201
201
197
183
176
168
156
139
108
85
67
56
53
51
50
49
48
48
48
48
49
50
51
53
53
53
53
53
52
51
50
50
50
50
50
50
50
50
50
50
50
49
45
40
39
39
40
42
46
47
48
48
48
49
51
53
58
64
73
80
86
91
96
100
101
101
100
97
91
84
76
69
61
54
50
48
46
47
48
49
51
52
53
54
54
54
54
54
54
53
51
49
47
45
44
44
44
45
48
50
52
53
53
54
56
58
60
63
67
71
82
103
134
160
159
147
127
99
34
12
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
94
96
99
104
107
107
107
106
104
103
102
102
103
104
108
108
104
103
103
102
93
50
20
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
2
2
2
3
5
6
7
7
6
5
3
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
8
26
61
95
98
98
93
81
69
68
73
91
126
183
196
201
200
195
181
173
164
151
131
99
77
62
55
53
51
50
49
48
48
48
49
49
50
51
52
53
53
53
53
51
50
50
50
50
50
50
50
50
50
50
50
49
47
42
39
39
40
41
44
47
47
48
48
48
50
54
60
68
77
88
96
102
108
112
117
119
121
121
121
117
111
103
94
83
69
61
54
50
47
47
48
49
50
52
53
53
54
54
54
54
53
52
50
48
46
44
44
44
44
46
49
51
52
53
54
55
57
59
62
66
68
72
84
108
150
159
155
142
122
61
25
7
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
94
96
99
104
107
107
107
106
104
103
102
102
102
104
108
108
105
103
103
103
97
58
25
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
3
4
5
6
6
6
6
5
5
4
4
4
6
8
14
18
21
21
19
14
9
5
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
10
29
67
96
98
97
91
79
68
68
75
95
134
189
198
202
199
192
179
170
160
145
123
90
70
59
54
52
51
49
48
48
48
48
49
50
50
51
52
52
53
53
52
51
50
50
50
50
50
50
50
50
50
50
50
48
45
40
39
39
40
43
46
47
47
47
48
49
54
62
71
82
90
98
103
108
112
116
120
123
125
127
129
131
131
129
124
114
96
82
69
58
50
47
47
47
48
50
52
52
53
53
54
54
53
53
51
50
47
45
44
44
44
45
47
50
52
53
54
54
56
58
61
65
68
70
74
82
127
153
161
154
134
93
44
15
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
94
96
99
103
107
107
107
106
104
102
102
102
102
104
108
108
105
103
103
103
100
65
30
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
5
9
14
23
30
36
41
44
45
44
41
37
33
28
27
28
32
41
57
69
76
79
79
71
57
41
25
12
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
12
34
74
97
98
96
90
77
68
68
76
99
143
193
200
202
198
189
176
167
154
137
113
80
64
56
53
52
50
49
48
48
48
48
49
50
51
51
52
52
52
52
52
51
50
50
50
50
50
50
50
50
50
51
49
46
42
39
38
39
42
45
46
47
47
47
49
53
63
73
81
87
92
99
103
107
109
112
115
118
121
125
128
132
133
134
134
134
130
119
104
88
71
56
50
48
47
48
50
51
52
53
53
53
53
53
52
51
49
47
45
44
43
44
46
48
50
53
54
54
55
57
59
65
67
69
70
73
90
129
152
160
156
125
77
37
10
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
94
95
99
103
107
107
107
106
105
103
102
102
103
105
108
108
104
102
102
103
101
69
33
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
3
10
20
32
44
55
65
70
74
77
79
80
79
78
76
73
69
65
64
67
73
85
91
95
97
98
96
90
82
70
53
25
12
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
14
38
78
97
98
96
89
76
67
68
77
102
149
195
200
202
197
187
174
164
150
131
106
74
61
54
52
52
50
48
48
48
48
48
49
50
50
51
51
52
52
52
52
51
50
50
50
50
50
50
50
50
51
50
48
44
40
38
38
40
43
46
46
46
47
48
51
57
68
75
81
87
90
92
91
89
87
86
86
89
93
98
105
116
123
129
133
135
135
132
126
116
100
76
63
54
49
47
48
50
51
52
52
53
53
53
52
52
50
48
46
45
44
44
45
47
49
52
54
54
55
56
58
63
67
69
70
72
79
105
135
158
161
138
104
61
23
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
94
95
98
103
107
107
107
107
105
103
103
102
104
106
109
108
103
102
102
104
102
72
35
7
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
5
12
23
41
53
64
73
80
86
88
90
92
93
94
94
93
93
92
90
88
88
89
92
98
101
103
105
105
105
104
101
95
85
64
43
23
9
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
16
42
81
97
98
96
88
75
67
68
78
104
152
196
201
202
197
185
172
162
146
125
99
69
59
54
52
51
49
48
48
48
48
49
49
50
50
51
51
51
52
51
51
51
50
50
50
50
50
50
50
51
51
50
47
43
39
38
38
41
44
46
46
46
46
49
53
60
70
75
79
81
80
75
70
67
64
62
62
64
66
70
75
86
96
106
117
127
135
137
136
132
124
103
84
68
57
50
48
49
50
51
52
53
53
53
52
52
50
49
47
45
44
44
44
46
48
51
53
54
54
55
57
61
67
70
71
72
74
87
115
145
162
152
125
85
42
11
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
93
95
98
102
107
107
107
107
106
104
103
103
105
107
109
108
103
101
102
104
103
74
37
7
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
11
22
36
53
74
83
88
90
91
91
91
91
92
93
94
95
96
96
97
99
99
99
100
101
103
104
105
105
106
106
106
105
105
104
97
79
54
29
9
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
19
45
84
98
98
95
88
74
67
68
79
106
155
197
202
202
196
183
170
159
142
120
93
65
57
53
52
51
49
48
48
48
48
49
49
50
50
51
51
51
51
51
51
51
50
50
50
50
50
50
50
51
51
50
46
41
38
37
39
42
45
46
46
46
47
49
55
61
69
73
73
71
65
56
52
49
47
47
47
47
48
49
51
57
65
76
90
105
123
131
136
139
139
128
110
90
71
57
49
49
49
50
51
52
52
53
52
52
51
49
48
46
45
44
44
45
47
50
53
54
54
55
56
60
66
70
73
73
73
76
95
125
157
162
142
107
66
23
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
93
95
97
101
106
107
107
108
107
105
104
105
107
109
109
106
101
101
102
105
103
75
38
8
3
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
13
34
57
77
87
90
91
92
91
90
86
84
84
83
84
87
90
93
95
98
100
101
102
103
103
104
105
105
105
105
105
105
106
106
106
105
103
93
69
28
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
21
48
85
98
98
95
88
74
67
67
79
107
156
198
202
201
195
182
168
157
138
115
88
62
56
53
52
51
49
48
48
48
48
49
49
50
50
50
51
51
51
51
51
51
50
50
50
50
50
50
51
51
51
49
44
40
38
37
39
43
45
46
46
46
47
50
55
61
67
67
64
57
48
45
44
44
43
43
44
44
44
44
45
45
47
50
55
66
92
114
129
139
142
142
135
118
95
71
53
50
49
49
50
52
52
52
52
52
51
50
49
47
45
44
44
45
46
49
53
54
54
55
56
59
64
70
74
76
74
74
80
101
144
164
152
128
92
41
7
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
92
95
97
100
106
107
107
108
108
108
107
108
108
109
109
103
100
100
102
105
102
73
37
9
6
7
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
13
31
68
82
88
90
91
88
82
75
70
65
62
61
61
62
64
68
73
79
86
93
100
102
103
104
104
104
103
103
103
102
102
102
102
103
104
105
105
104
100
90
30
10
2
1
1
3
3
2
2
1
1
1
1
1
1
1
1
1
1
1
1
5
23
51
85
98
98
95
88
75
67
67
79
107
156
198
202
201
195
181
165
153
134
109
83
59
55
52
51
50
48
48
48
48
48
49
50
50
50
50
50
51
51
51
51
51
51
50
50
50
50
51
51
51
51
49
43
39
37
37
40
44
45
45
45
45
46
50
54
59
59
57
51
46
44
43
43
43
43
43
43
43
43
44
44
44
44
44
45
46
51
64
85
110
133
143
145
142
131
108
73
59
52
49
50
51
52
52
52
52
52
51
49
48
46
45
44
44
45
47
51
53
54
55
55
58
62
69
75
80
79
76
76
83
103
158
163
151
121
75
20
7
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
92
94
96
99
106
107
107
108
108
108
109
109
109
109
108
101
100
100
102
105
101
69
36
12
9
9
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
11
29
50
69
82
87
88
86
82
74
69
65
62
60
58
57
58
59
61
65
70
77
85
93
100
101
102
102
102
103
102
102
102
102
101
100
99
99
99
101
102
103
103
100
73
34
12
2
1
2
7
9
8
5
2
1
1
1
1
1
1
1
1
1
1
5
24
52
85
98
98
95
88
75
67
68
78
106
156
198
202
201
194
180
164
151
131
105
79
58
54
52
51
50
48
48
48
48
49
49
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
51
51
51
48
42
38
37
37
41
44
45
45
45
45
46
49
53
55
55
51
47
44
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
46
50
59
74
97
130
141
145
142
133
101
76
61
52
50
50
51
52
52
52
52
51
50
49
47
45
44
44
45
46
51
53
54
55
55
57
61
67
73
81
83
80
77
78
85
140
159
156
136
103
38
14
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
91
94
96
98
105
107
107
107
108
109
109
109
109
108
106
100
99
100
102
104
99
65
35
15
13
12
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
20
39
57
73
84
86
85
82
78
73
66
63
60
58
57
56
56
57
58
60
64
70
77
85
94
100
101
101
102
102
102
102
101
100
98
97
96
95
95
95
96
97
99
101
103
95
66
36
11
3
3
8
15
20
19
12
5
2
1
1
1
1
1
1
1
1
5
24
52
85
98
98
95
88
76
67
68
77
103
154
198
202
201
194
180
164
150
128
103
76
57
54
52
51
50
48
48
48
48
49
49
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
51
51
48
41
38
37
37
41
44
45
45
45
45
45
48
50
51
51
47
45
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
44
47
54
67
101
125
139
146
145
126
99
76
59
52
50
51
51
52
52
52
52
51
49
48
45
45
44
45
46
50
53
54
55
55
56
60
65
72
81
86
84
81
78
77
113
148
159
150
127
61
26
8
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
89
93
95
97
104
106
106
107
108
109
109
109
108
106
103
99
98
100
103
104
96
60
33
18
17
13
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
8
19
47
69
79
82
83
82
79
74
70
67
63
61
59
58
57
56
56
56
58
60
65
71
78
87
95
101
101
102
102
103
102
100
97
95
93
91
90
90
91
92
93
93
95
97
101
102
93
66
34
11
5
7
17
29
36
29
17
8
3
1
1
1
1
1
1
1
5
23
52
85
98
98
95
89
76
67
68
76
100
151
198
202
202
194
180
163
149
126
100
74
56
53
52
51
50
48
48
48
49
49
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
51
48
41
38
37
37
41
43
44
44
44
44
45
47
48
49
48
45
44
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
45
48
68
99
124
141
148
144
123
97
72
56
51
51
51
52
52
52
52
51
50
48
46
45
45
45
45
49
52
54
55
55
56
59
65
72
81
88
88
85
81
76
88
132
156
161
145
86
42
15
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
88
93
95
97
102
106
106
106
106
108
108
108
107
104
99
97
97
100
103
104
93
55
32
22
20
11
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
8
24
56
77
81
82
81
78
72
70
68
66
64
63
61
59
58
57
56
56
57
59
62
67
72
79
88
96
103
105
105
104
103
99
94
90
87
85
84
84
85
87
90
92
92
93
93
95
101
102
97
76
32
10
11
15
26
50
53
40
22
7
2
1
1
1
1
1
1
4
22
50
83
98
98
96
89
77
67
67
74
97
146
198
203
202
195
180
163
148
125
99
73
56
53
52
51
50
48
48
48
49
49
50
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
48
41
38
36
37
41
43
44
44
44
44
44
45
47
47
46
44
44
43
43
43
43
43
43
43
43
43
43
43
43
42
42
42
42
42
42
42
42
43
43
47
67
97
127
145
149
142
120
92
65
52
51
51
51
52
52
52
51
50
49
46
45
45
45
45
48
51
54
55
55
56
58
64
71
79
90
91
89
85
79
77
115
148
165
157
113
61
26
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
85
92
94
96
100
106
106
106
105
105
106
106
104
100
96
96
97
100
103
103
84
50
32
25
22
8
3
1
1
1
1
1
1
1
1
1
1
1
1
1
2
18
46
72
80
79
75
73
72
71
69
68
67
66
65
64
63
61
59
57
56
56
59
62
66
70
78
89
99
106
107
106
104
100
95
86
83
81
80
80
80
81
83
86
89
91
92
92
92
93
94
100
102
101
96
53
30
23
26
32
64
66
58
39
12
2
1
1
1
1
1
3
18
44
79
97
98
96
91
79
67
67
72
91
136
195
202
202
196
182
164
147
124
98
71
55
53
52
51
49
49
48
49
49
49
50
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
48
42
38
36
36
40
42
44
44
44
44
44
44
45
45
45
44
44
44
44
44
44
44
44
43
43
43
42
42
42
42
42
41
40
40
39
40
40
41
42
43
46
63
91
128
147
148
141
123
90
59
53
51
51
52
52
52
52
51
49
47
46
45
45
45
47
51
53
55
55
56
57
63
70
77
90
93
94
92
85
76
87
123
157
164
142
92
48
16
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
83
92
94
95
98
106
106
106
104
103
103
103
100
97
96
95
98
101
103
102
76
46
32
26
21
5
2
1
1
1
1
1
1
1
1
1
1
1
1
3
24
52
69
76
76
74
73
72
72
73
71
69
68
67
67
66
64
61
59
57
57
58
62
66
70
80
92
100
105
107
106
103
97
91
85
80
78
76
75
74
75
77
80
83
87
91
92
92
92
93
94
96
99
101
101
89
71
51
36
37
51
65
67
59
40
9
3
1
1
1
1
2
15
39
75
97
98
97
92
81
68
67
70
87
127
191
202
203
197
183
165
148
125
98
71
55
53
52
51
49
49
48
49
49
50
50
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
49
42
38
36
36
39
42
43
44
43
43
43
44
44
45
45
45
44
44
44
44
44
44
44
43
43
42
42
42
41
41
41
40
39
38
37
37
38
39
41
42
44
51
68
101
139
146
146
136
113
72
59
53
52
52
52
52
52
51
50
48
46
45
45
45
47
50
53
55
55
56
57
62
70
77
89
94
97
95
91
79
80
108
142
165
155
115
69
28
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
81
91
94
95
97
105
106
106
105
102
101
100
98
96
95
96
99
101
102
99
67
44
32
26
17
3
1
1
1
1
1
1
1
1
1
1
1
1
6
18
52
70
75
75
73
74
77
77
76
75
73
70
69
69
68
66
64
61
59
58
59
62
67
72
78
90
100
105
107
106
102
96
89
83
78
73
71
69
68
68
70
72
76
80
84
90
91
92
92
93
94
95
96
99
101
101
93
79
64
51
50
61
68
68
60
28
11
3
1
1
1
2
11
32
69
95
97
97
93
83
68
67
69
83
117
186
200
204
198
185
166
149
126
99
72
55
53
51
51
49
49
49
49
49
50
50
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
50
43
39
36
36
38
41
42
43
43
43
43
43
44
44
45
44
44
44
44
44
44
44
43
43
42
42
41
40
40
40
40
39
38
37
36
35
35
36
38
41
42
45
54
75
124
141
147
143
131
89
67
56
52
52
52
52
52
52
51
48
47
45
45
45
46
50
53
55
56
56
57
62
69
77
87
95
98
98
96
84
79
94
123
161
161
135
90
44
12
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
79
90
94
94
95
104
105
106
105
102
99
98
97
96
96
97
100
101
100
93
59
41
31
24
12
1
1
1
1
1
1
1
1
1
1
1
1
6
18
42
74
75
74
72
75
80
84
85
82
76
73
71
70
69
68
66
64
61
60
60
63
67
72
78
86
99
104
106
105
103
95
87
81
75
71
66
63
62
62
63
65
68
72
76
81
88
90
92
92
93
95
95
95
96
98
100
100
98
90
71
60
60
66
71
72
51
25
9
3
1
1
1
8
26
61
94
97
97
94
86
70
67
68
79
107
179
198
204
199
187
167
150
127
100
73
55
53
51
51
49
49
49
49
49
50
50
50
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
50
45
40
37
36
37
39
41
42
43
43
43
43
43
44
44
44
44
44
44
44
44
43
43
42
41
40
40
40
39
39
39
38
38
37
34
33
33
33
35
40
41
43
46
55
103
132
144
147
143
108
78
61
53
52
52
52
52
52
51
49
47
46
45
45
46
49
53
55
56
56
57
61
68
77
86
94
99
100
100
90
81
84
106
153
164
150
111
64
21
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
77
90
94
94
94
102
105
106
105
102
99
97
96
96
96
98
100
101
97
86
50
37
29
20
7
1
1
1
1
1
1
1
1
1
1
1
2
16
39
71
76
72
70
74
84
92
92
90
86
77
73
71
70
70
68
66
64
63
62
62
66
70
77
85
94
104
105
105
103
96
84
78
72
67
61
58
58
59
60
61
62
64
67
72
77
85
89
91
92
93
95
96
96
95
94
94
95
95
94
93
77
69
67
71
76
73
46
22
6
2
1
1
5
19
52
91
96
97
95
89
72
67
67
75
96
170
196
205
201
190
170
152
129
102
75
55
53
51
51
49
49
49
49
49
50
50
50
50
50
50
50
49
49
50
50
50
51
51
51
51
51
51
51
51
51
51
46
41
37
36
37
38
40
41
42
43
43
43
43
43
43
44
44
44
44
44
43
42
41
40
40
40
39
39
39
39
38
38
37
36
33
32
31
31
32
37
40
42
44
46
78
119
140
147
147
126
91
68
55
52
52
52
52
52
52
49
47
46
45
45
46
49
52
55
56
56
57
61
67
77
86
93
99
102
102
96
84
81
95
138
164
159
130
86
34
5
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
75
89
93
93
94
99
103
105
106
105
100
98
97
97
97
100
100
99
92
74
43
30
22
14
3
1
1
1
1
1
1
1
1
1
1
2
15
43
68
75
71
70
77
87
98
101
100
95
88
81
74
73
73
72
71
67
65
64
64
66
74
85
95
103
107
106
101
95
87
79
71
65
59
56
55
56
56
56
56
55
56
57
60
64
69
77
84
88
90
92
94
97
98
98
98
97
95
93
92
91
90
83
77
74
75
79
75
54
28
7
1
1
3
12
36
84
94
97
96
92
75
69
67
71
83
155
190
204
203
193
173
156
133
106
78
56
53
51
51
50
49
49
49
49
50
50
50
50
50
50
50
49
49
50
50
50
51
51
52
52
51
51
51
51
52
51
49
44
39
37
37
38
38
39
39
41
42
42
43
43
43
43
43
43
42
41
40
40
40
40
40
40
40
40
39
39
39
38
37
36
33
31
29
29
29
33
38
41
43
44
56
96
127
145
147
140
109
81
60
53
52
52
52
52
52
50
48
47
46
46
46
49
52
55
56
56
57
60
67
76
86
91
98
102
103
102
90
83
87
109
160
161
147
114
58
12
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
73
88
93
93
93
97
101
104
106
106
102
101
100
99
99
100
100
96
85
65
35
25
17
9
1
1
1
1
1
1
1
1
1
1
1
9
37
59
72
73
70
74
85
96
104
106
104
99
93
87
81
79
77
75
72
68
67
69
74
84
93
99
101
102
102
95
88
83
77
70
59
56
53
52
51
51
50
51
51
53
54
55
57
59
63
70
77
82
86
89
92
95
97
98
99
99
99
98
97
95
93
90
84
78
76
78
77
69
51
23
3
1
2
8
24
74
91
96
96
94
79
70
67
69
77
139
182
202
204
196
177
160
137
110
81
57
53
51
51
50
49
49
49
49
50
50
51
50
50
50
50
49
49
49
50
50
51
51
52
52
52
51
51
51
52
52
50
46
41
38
37
38
38
38
38
39
40
40
41
41
42
42
41
41
40
39
39
39
40
40
40
41
41
42
42
42
42
41
40
38
34
31
29
28
28
31
36
40
42
44
51
82
116
141
147
143
120
91
66
54
53
53
53
52
52
51
49
47
46
46
46
49
52
55
56
57
57
60
66
76
85
90
96
101
104
103
95
86
84
94
151
159
154
130
80
21
7
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
72
87
93
93
92
95
98
103
106
106
104
102
101
101
101
101
99
91
75
53
27
20
12
5
1
1
1
1
1
1
1
1
1
1
3
24
53
68
73
71
70
80
92
102
107
108
105
101
97
91
86
83
81
77
74
72
77
82
89
96
101
101
98
95
92
85
78
70
63
57
51
48
47
45
44
44
44
46
48
50
52
53
54
55
57
63
69
75
81
84
87
90
93
95
98
100
101
101
100
99
97
96
92
88
83
80
79
76
67
45
11
4
2
5
15
62
86
95
96
95
82
72
67
68
73
122
173
198
205
199
180
164
141
115
85
59
54
52
51
50
49
49
49
49
50
51
51
51
50
50
50
50
49
50
50
50
51
51
52
52
52
51
51
51
52
52
51
49
44
39
38
38
38
38
38
38
38
39
39
39
40
39
39
39
39
39
39
40
40
41
43
44
44
45
45
46
46
45
44
42
37
32
29
28
28
29
34
39
42
43
48
71
105
136
147
145
128
101
73
56
53
53
53
53
52
51
49
47
46
46
47
49
52
55
56
57
57
60
66
76
85
89
94
99
104
104
99
90
83
86
138
156
158
142
102
33
12
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
71
87
92
92
92
93
96
101
105
106
105
103
102
102
102
101
96
83
64
40
20
14
8
3
1
1
1
1
1
1
1
1
1
3
8
44
65
73
72
69
73
87
98
106
109
108
106
103
100
95
90
87
84
82
80
81
89
95
100
101
100
96
90
85
79
72
65
57
51
46
44
42
40
38
37
37
39
41
43
46
48
50
51
52
53
56
61
67
73
78
82
85
87
91
94
98
100
101
102
101
101
100
99
97
92
84
82
80
76
66
26
10
3
4
8
48
79
93
96
96
86
74
68
67
70
107
161
192
205
202
185
168
146
120
90
61
55
52
51
50
49
49
49
49
50
51
51
51
51
50
50
50
50
50
50
50
51
51
52
52
52
52
51
51
51
52
52
51
48
42
39
38
38
38
38
38
38
38
38
38
38
38
38
38
38
39
40
41
42
44
45
46
47
47
48
49
49
49
49
47
41
34
30
28
28
29
33
38
41
43
46
63
96
130
146
146
134
108
79
58
53
53
53
53
53
51
49
48
47
47
47
50
53
55
57
57
58
60
66
75
85
88
93
97
103
104
102
93
85
84
122
151
160
150
123
48
18
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
70
86
92
92
91
91
92
98
104
106
105
104
103
103
102
101
88
71
50
28
13
9
5
1
1
1
1
1
1
1
1
1
1
6
19
63
72
73
71
69
76
92
103
108
110
108
107
105
102
99
95
92
91
90
91
96
98
99
99
98
93
89
83
75
65
52
46
43
42
40
37
35
35
34
34
34
35
36
38
40
44
46
48
48
49
50
53
58
65
71
78
80
82
84
87
94
98
101
102
102
101
101
100
99
98
91
86
83
81
78
51
20
7
4
5
32
69
88
96
96
89
77
70
67
68
92
147
185
204
204
189
173
152
126
96
64
56
52
51
50
49
49
49
49
50
51
51
51
51
51
50
50
50
50
50
50
51
51
52
52
52
52
51
51
51
52
52
52
50
47
40
39
39
39
39
38
38
38
38
38
38
38
38
38
39
41
43
44
46
47
47
48
48
48
48
49
51
52
52
51
46
38
32
28
28
29
33
38
41
43
45
58
89
124
145
146
138
114
85
61
54
53
53
53
53
52
50
48
47
47
47
50
53
56
57
57
58
61
66
75
85
88
91
95
101
104
103
96
87
83
107
145
159
156
140
66
27
8
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
69
86
91
91
91
89
88
92
98
105
106
105
105
103
101
89
71
50
30
14
7
5
3
1
1
1
1
1
1
1
1
1
4
16
42
73
75
72
68
68
79
95
104
109
109
109
108
107
106
105
103
102
101
100
100
99
98
97
93
86
72
63
55
48
43
40
38
37
36
35
35
34
34
34
34
34
34
34
35
37
40
42
44
45
45
45
45
47
51
56
66
72
77
80
81
84
90
95
99
101
101
101
101
101
102
101
97
92
87
85
76
46
21
6
6
16
52
79
94
95
93
81
72
67
67
78
124
169
201
207
195
180
160
136
105
69
58
53
51
50
49
49
49
49
49
51
51
51
51
51
51
50
50
50
50
50
50
51
52
52
52
52
52
51
51
51
52
52
52
51
46
42
40
40
40
40
40
39
39
39
39
40
41
42
44
46
46
47
47
47
48
48
48
48
48
49
51
53
53
53
50
41
34
30
29
30
33
38
41
43
45
55
84
118
144
146
140
119
91
64
54
54
53
53
53
52
50
49
48
48
48
51
54
56
57
57
58
61
67
75
84
87
89
92
97
103
103
99
91
84
93
135
155
159
153
92
42
14
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
68
85
91
91
90
88
85
85
90
100
103
103
101
97
91
74
53
33
17
9
6
3
1
1
1
1
1
1
1
1
1
1
9
27
59
75
74
70
67
67
80
95
104
108
109
109
108
108
107
106
104
102
101
100
99
96
91
82
72
62
51
46
43
40
38
37
37
37
38
38
38
38
38
38
37
36
35
35
35
36
38
40
41
43
43
43
43
43
44
46
52
58
64
71
75
80
83
89
94
98
99
100
100
100
100
101
99
96
93
89
84
66
39
15
7
12
38
67
89
95
94
85
75
68
67
72
107
153
193
207
199
185
167
143
114
75
61
54
51
50
49
49
49
49
49
50
51
51
51
51
51
51
50
50
50
50
50
51
52
53
53
52
52
52
51
51
52
52
52
52
50
46
43
42
41
41
42
42
42
42
43
43
44
45
46
47
47
47
47
48
48
48
48
49
49
50
52
54
55
55
51
42
35
31
30
31
35
39
42
43
45
54
83
117
143
146
141
121
93
66
55
54
53
53
53
52
51
49
48
48
49
51
54
57
57
58
58
61
67
76
83
85
87
89
94
102
103
100
94
84
89
126
150
161
157
110
55
21
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
67
84
90
91
90
89
82
79
81
89
94
95
91
84
75
51
33
20
11
7
4
2
1
1
1
1
1
1
1
1
1
3
17
40
70
77
72
68
66
67
80
94
103
108
109
108
108
108
107
105
103
101
99
95
90
79
70
61
53
46
41
40
39
39
40
41
42
43
44
44
45
45
44
43
42
40
38
37
36
35
37
38
40
41
42
42
42
42
42
42
44
48
52
57
63
69
74
80
87
94
98
99
99
99
99
100
100
99
96
93
90
80
56
30
11
11
27
55
82
94
94
88
79
70
66
69
92
137
181
205
203
191
174
152
123
82
65
55
52
50
49
49
49
49
49
50
51
52
52
52
52
52
51
51
50
50
50
51
52
53
53
53
52
52
51
51
52
52
52
52
52
50
47
45
43
42
43
43
43
44
44
45
45
46
46
47
47
47
47
48
48
48
49
49
50
51
54
55
56
56
51
42
35
31
31
32
36
39
42
43
45
55
83
117
143
145
141
121
94
66
55
54
53
53
53
52
51
50
49
49
49
52
55
57
58
58
58
62
68
76
82
84
85
87
91
100
102
101
96
85
87
117
144
161
160
126
69
29
7
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
67
84
90
90
90
89
81
74
71
75
80
80
74
65
53
28
17
11
8
6
2
1
1
1
1
1
1
1
1
1
1
7
27
53
75
77
70
66
65
66
80
93
101
106
107
107
107
106
104
102
98
94
89
82
72
58
50
44
41
40
40
41
42
43
44
47
48
49
49
50
50
50
50
49
48
45
43
40
38
36
36
37
38
39
41
41
41
41
41
41
41
42
43
45
49
57
62
69
76
85
94
97
98
99
99
99
100
100
99
96
93
89
73
48
18
12
19
44
72
92
93
91
82
72
66
67
81
119
166
202
205
195
181
160
132
90
69
58
52
50
49
49
49
49
49
50
51
52
52
53
53
53
52
51
51
51
51
51
52
53
53
53
53
52
52
51
51
52
52
52
52
52
51
49
47
45
44
44
44
45
45
46
46
46
47
47
47
48
48
48
49
49
50
50
51
54
56
57
57
57
51
41
35
32
32
33
37
40
43
44
46
58
86
119
143
145
140
120
93
66
55
54
54
53
53
52
51
50
49
49
50
53
56
58
58
58
59
62
68
77
81
82
83
84
87
98
101
101
97
87
86
109
138
160
161
139
83
39
10
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
66
83
89
90
90
89
81
71
64
62
63
58
50
39
26
17
14
10
7
4
1
1
1
1
1
1
1
1
1
1
2
12
37
63
78
77
68
65
64
65
78
90
98
103
105
105
103
102
99
95
86
76
66
56
48
43
42
41
41
41
45
46
48
49
49
49
50
50
50
51
51
52
52
52
52
50
48
45
42
39
36
36
37
38
40
40
41
41
41
41
41
41
41
41
42
44
47
53
60
69
84
92
96
98
98
99
99
100
99
99
96
94
87
68
32
15
17
33
59
87
93
92
85
76
67
66
73
103
146
195
205
200
188
169
143
99
75
61
53
51
50
49
49
49
49
50
51
52
53
54
54
54
53
52
51
51
51
51
52
53
53
53
53
53
52
51
51
51
52
52
53
53
52
52
50
48
47
46
46
46
46
46
46
47
47
48
48
48
48
49
50
50
51
52
53
56
58
58
58
57
48
39
34
32
32
34
38
41
43
44
47
61
91
122
143
144
138
118
91
66
55
54
54
53
53
53
51
50
50
50
51
54
57
58
58
58
59
62
69
77
80
80
81
82
84
95
100
101
98
89
86
102
132
158
162
149
97
49
14
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
66
82
88
89
89
90
87
74
60
53
49
41
35
30
24
17
14
9
4
2
1
1
1
1
1
1
1
1
1
1
4
22
50
74
80
75
67
63
63
63
71
79
84
87
88
87
81
76
70
62
53
48
45
44
43
43
44
45
47
49
49
49
49
49
49
49
49
50
50
51
52
52
53
54
54
54
54
52
49
46
41
38
36
36
37
39
39
40
40
40
40
40
40
40
41
41
42
43
45
48
60
75
87
95
98
99
99
99
100
99
98
97
95
85
64
23
20
25
42
74
92
92
89
82
70
66
68
85
119
175
206
204
195
180
158
114
86
67
56
51
50
49
49
49
48
49
51
52
53
54
55
55
55
54
53
52
52
52
52
53
54
54
54
53
53
52
51
51
51
51
52
52
53
53
53
53
52
51
50
49
49
48
48
48
48
49
49
49
50
51
52
52
53
54
56
59
59
59
57
53
43
37
34
34
34
37
41
43
45
45
50
70
101
129
144
144
134
112
85
63
55
54
54
54
54
53
52
51
51
51
52
56
58
58
59
59
59
63
70
77
78
78
78
78
80
91
98
100
98
91
85
95
124
154
162
156
114
65
23
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
65
81
87
88
88
90
88
79
66
54
49
42
37
32
27
19
15
9
3
1
1
1
1
1
1
1
1
1
1
1
9
33
59
78
81
74
66
62
61
61
65
69
72
72
71
68
62
58
54
50
47
45
44
44
45
46
47
48
48
49
49
48
48
48
48
48
48
48
49
50
51
52
53
55
56
57
57
55
53
50
46
42
39
37
36
37
38
38
39
39
40
40
40
40
40
41
41
41
42
43
48
56
68
82
93
98
99
99
100
100
99
98
97
92
82
39
27
25
35
59
88
91
90
85
74
66
67
76
102
154
200
204
200
188
169
127
96
74
59
52
50
49
49
49
48
49
50
52
53
55
56
56
56
56
55
53
53
53
53
53
54
54
54
54
53
52
51
51
51
51
51
52
52
53
53
53
53
53
52
52
51
51
51
51
51
51
51
52
52
53
53
54
55
56
58
59
59
58
55
49
39
36
35
35
36
40
43
44
45
46
54
80
110
135
144
143
129
105
80
61
55
54
54
54
54
53
52
52
52
52
54
57
58
59
59
59
59
64
70
77
77
76
75
76
77
88
96
99
98
92
85
92
120
150
163
159
125
76
31
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
65
80
86
87
87
89
89
84
73
59
52
47
41
36
32
22
16
8
2
1
1
1
1
1
1
1
1
1
1
2
15
43
67
81
82
73
65
61
60
59
60
61
61
60
58
55
51
49
47
45
45
45
45
46
47
48
48
49
49
48
48
48
48
48
47
47
47
48
48
49
51
52
54
55
57
58
59
59
57
55
50
46
43
40
37
37
37
38
38
39
39
39
39
40
40
40
40
40
41
41
43
46
54
65
80
93
97
99
99
100
99
98
98
96
92
59
36
28
32
46
82
88
90
87
79
67
66
70
88
129
191
202
202
195
179
141
108
82
64
54
50
50
49
49
48
49
50
51
53
55
57
57
57
57
57
55
54
54
54
54
54
54
54
54
54
53
52
51
51
51
51
51
52
52
53
53
53
53
53
53
53
53
53
53
53
53
53
53
54
54
55
56
57
58
59
60
58
55
50
44
37
36
36
36
38
42
44
45
46
48
63
92
119
139
144
141
122
97
74
59
55
54
54
54
54
53
52
52
52
53
56
58
59
59
59
59
60
65
71
76
76
74
74
73
74
85
94
98
97
93
85
90
115
145
163
161
135
88
39
8
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
64
79
85
86
86
89
89
87
80
66
57
53
48
43
39
27
17
8
2
1
1
1
1
1
1
1
1
1
1
3
22
53
74
83
83
72
65
61
59
57
56
55
54
52
50
48
46
46
45
45
45
46
47
48
48
49
49
49
49
49
49
48
48
47
47
47
47
48
48
49
52
54
55
57
58
60
61
61
61
59
54
50
47
43
40
37
37
37
38
38
39
39
39
39
39
39
39
39
40
40
41
42
44
50
62
82
92
97
99
99
99
99
98
98
96
78
49
35
32
38
72
85
89
88
83
69
66
67
78
105
176
197
204
200
189
155
122
93
70
57
51
50
49
49
48
48
49
51
53
55
58
58
59
58
58
57
56
55
55
55
55
55
55
55
55
54
52
51
51
51
50
51
51
51
52
53
53
53
53
53
54
54
54
54
54
54
54
55
55
55
56
58
59
59
60
59
56
51
45
40
36
36
37
38
41
44
45
46
48
52
75
105
128
142
144
137
113
88
68
57
55
54
54
54
54
53
53
53
53
54
58
59
60
60
59
59
60
65
71
76
76
73
72
71
72
82
93
97
97
93
85
88
111
141
163
162
143
98
48
11
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
62
78
83
84
85
87
89
89
85
76
64
60
56
52
45
33
19
9
2
1
1
1
1
1
1
1
1
1
2
5
30
62
79
85
84
71
65
61
59
56
52
51
49
47
46
46
45
45
45
45
47
48
48
49
49
50
51
51
51
51
49
49
48
47
47
47
47
48
49
50
54
57
59
60
61
62
62
63
63
62
60
55
50
46
44
40
38
38
38
38
39
39
38
38
37
37
37
38
38
39
40
41
42
43
45
63
81
92
97
99
99
99
99
98
98
91
63
44
34
35
60
80
88
89
87
73
67
66
71
85
156
190
203
203
197
169
136
105
79
61
52
50
49
49
48
48
49
50
52
54
58
59
60
60
59
58
57
57
56
56
55
55
55
55
55
54
53
52
51
51
50
50
50
50
51
52
52
53
53
53
54
54
54
55
55
55
55
55
56
57
58
59
59
59
59
56
51
45
41
38
37
37
39
41
44
46
46
47
51
59
90
119
136
144
143
130
102
79
62
55
55
54
54
54
54
54
54
54
54
56
59
60
60
60
59
59
61
66
72
75
75
72
70
70
70
80
91
96
97
94
85
87
108
136
163
163
150
108
57
15
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
60
75
81
82
82
85
88
89
88
83
72
66
62
58
52
39
21
9
2
1
1
1
1
1
1
1
1
1
3
9
43
72
84
86
85
71
65
62
59
56
50
48
47
46
46
46
46
46
46
47
49
49
50
51
51
52
52
52
52
51
48
47
47
47
47
48
50
52
55
58
60
61
61
62
62
63
63
64
64
64
63
61
57
51
47
44
42
41
41
40
39
39
38
38
37
37
37
37
38
38
39
40
41
42
42
44
55
72
88
97
98
98
99
98
98
96
82
59
41
38
47
71
84
88
88
80
70
66
67
72
120
169
196
206
204
186
157
125
95
71
55
52
50
49
49
48
48
49
51
53
57
59
60
61
61
60
60
59
58
57
57
57
57
56
56
55
54
53
52
51
50
50
49
49
49
49
50
50
51
52
52
53
53
53
54
55
55
56
57
57
58
58
58
57
53
47
43
40
39
38
39
41
43
45
46
47
48
51
61
78
112
133
142
143
139
112
86
68
57
55
55
55
55
54
54
54
55
55
56
59
61
61
61
60
60
60
62
67
73
75
74
70
69
68
69
77
89
95
96
94
85
86
104
131
162
164
156
119
69
21
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
57
73
79
80
80
82
86
88
88
86
78
73
69
65
59
45
25
10
2
1
1
1
1
1
1
1
1
1
5
14
52
77
86
87
85
71
65
62
60
56
50
48
46
46
45
46
46
47
48
49
50
50
51
51
52
52
51
51
49
48
47
46
47
48
49
53
55
57
58
59
60
61
61
62
62
63
63
63
63
63
63
63
60
57
52
46
44
43
42
41
40
40
39
38
37
37
37
38
38
38
39
40
41
41
42
42
46
55
69
88
97
98
98
98
98
97
90
70
50
40
44
63
78
87
88
83
73
67
66
68
98
149
184
202
206
196
172
142
110
82
60
54
51
49
49
48
48
49
50
52
56
58
60
61
62
62
61
60
60
59
58
58
58
58
57
57
55
54
52
51
50
49
49
49
48
48
49
49
50
50
51
51
52
52
53
54
54
55
56
56
56
55
52
49
46
43
41
40
40
40
42
44
45
46
47
48
51
60
76
97
127
138
142
138
129
96
75
62
56
55
55
55
55
55
55
55
56
57
58
60
62
62
61
60
60
60
62
68
73
74
73
70
68
68
68
76
88
94
95
93
84
86
102
128
161
165
159
126
79
27
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
55
71
77
78
77
78
85
88
88
87
81
77
74
70
65
48
26
11
2
1
1
1
1
1
1
1
1
2
7
18
60
80
88
89
86
72
66
63
61
58
51
48
46
45
45
46
46
47
48
50
50
51
51
51
51
51
50
49
47
46
46
48
49
51
54
56
58
59
59
60
60
60
60
60
60
60
60
60
61
61
62
62
61
59
55
50
47
45
43
42
41
40
39
38
38
38
38
39
40
40
40
40
41
41
42
42
43
46
55
70
90
96
98
98
98
98
94
79
60
43
44
56
72
85
87
85
77
69
65
65
82
127
167
196
206
203
185
159
128
96
68
58
52
50
49
48
48
48
49
50
54
57
59
61
62
63
62
62
61
60
59
59
59
59
59
58
57
55
54
52
50
49
49
48
47
47
47
47
48
48
49
49
50
51
51
52
52
53
52
52
50
49
46
44
43
41
41
41
42
43
44
46
46
47
48
50
59
75
94
115
136
140
138
130
113
81
66
58
55
55
55
55
55
55
56
56
57
59
60
62
62
62
61
60
60
60
63
69
73
74
72
69
68
68
68
75
87
93
94
93
84
85
100
125
160
166
161
133
88
33
5
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
52
68
74
75
74
75
82
87
88
88
84
81
77
73
68
48
25
10
2
1
1
1
1
1
1
1
1
3
9
23
66
83
90
90
87
73
66
63
62
60
53
48
46
46
45
46
46
47
48
49
50
50
51
50
50
49
47
47
46
47
48
51
53
56
57
58
58
58
58
58
57
56
55
55
54
54
54
55
55
56
58
59
59
59
57
53
49
46
44
43
42
41
40
39
39
39
40
41
42
42
42
42
42
42
43
43
42
43
45
52
77
90
96
98
98
98
97
86
69
48
45
52
67
81
87
86
80
72
66
64
71
104
147
185
204
207
196
175
146
113
78
64
55
51
50
49
48
48
48
49
52
55
58
61
62
63
63
63
62
62
61
60
60
60
60
59
58
57
55
54
51
50
49
48
47
46
46
45
45
46
46
47
47
48
48
48
48
48
47
46
45
43
42
42
42
41
42
43
44
45
46
47
47
48
50
58
75
94
113
130
140
138
131
117
95
68
59
56
55
55
55
56
56
56
57
58
59
61
62
63
63
62
61
60
60
60
64
69
73
73
71
69
68
68
68
75
86
92
94
92
84
84
98
123
159
167
163
138
96
40
6
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
49
64
70
71
71
72
79
85
88
88
85
82
79
74
67
45
22
8
2
1
1
1
1
1
1
1
1
3
10
26
72
86
91
91
88
74
67
64
63
61
55
50
47
46
45
46
46
47
48
49
50
49
49
48
47
46
46
46
47
50
54
56
57
58
58
58
57
55
54
52
49
48
47
47
46
46
46
47
47
48
51
52
54
56
56
55
51
48
46
44
43
42
41
40
40
40
42
43
44
44
44
44
45
45
45
44
43
43
43
44
57
78
91
97
98
98
97
91
77
54
46
49
62
77
86
86
83
75
67
63
66
84
123
167
200
208
203
189
165
133
92
72
60
53
50
49
49
48
48
48
50
53
56
60
62
63
64
64
63
63
62
61
61
61
60
60
59
58
57
55
53
51
49
48
47
45
44
44
43
42
42
42
42
42
42
42
42
41
41
41
41
41
41
41
42
43
44
45
46
47
47
48
48
50
54
75
97
115
129
138
139
132
118
99
76
59
56
55
55
56
56
56
57
58
59
60
61
63
63
63
63
63
61
60
60
61
66
70
73
73
70
68
68
68
68
74
85
91
93
91
83
84
96
121
158
168
165
143
104
47
7
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
46
58
64
65
65
66
74
81
86
87
85
81
77
69
58
35
16
5
1
1
1
1
1
1
1
1
1
4
14
33
76
87
92
92
90
76
68
64
63
63
59
54
49
46
45
45
45
46
46
46
46
46
46
46
46
47
50
53
55
57
58
57
57
55
52
49
47
45
44
43
43
42
42
42
43
43
43
43
43
43
44
45
46
47
47
48
48
48
46
45
43
43
42
42
42
43
43
44
44
44
44
45
46
48
52
51
49
46
43
43
44
57
75
90
97
98
98
94
83
60
47
48
58
71
85
86
85
79
71
64
63
70
96
134
178
207
208
202
187
161
118
91
71
59
52
49
49
49
48
48
48
50
53
56
59
63
64
64
64
64
64
63
63
63
62
62
61
60
58
56
54
52
50
49
47
45
44
43
42
42
41
40
40
40
40
40
40
40
40
41
42
42
44
45
46
47
47
47
47
48
49
50
54
64
82
110
124
133
137
138
128
112
93
75
60
56
55
56
56
56
57
58
59
60
61
63
64
64
64
64
64
62
61
60
60
62
67
71
73
73
69
68
68
68
68
74
84
90
91
90
83
83
95
119
157
169
166
149
113
56
10
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
43
53
58
60
60
60
66
75
81
83
82
78
71
61
48
25
11
3
1
1
1
1
1
1
1
1
2
6
16
37
79
88
92
92
91
79
69
64
63
63
61
58
54
49
47
46
46
46
46
46
46
46
47
48
51
54
56
57
57
57
54
51
49
47
45
44
43
42
42
42
42
42
42
42
42
42
43
43
43
43
44
44
45
45
46
46
46
45
45
44
43
43
43
43
43
44
44
44
45
45
45
45
46
49
55
58
57
53
48
44
43
48
62
80
94
98
97
94
84
63
47
48
56
68
83
86
85
81
74
66
62
66
81
110
155
195
205
207
198
180
140
110
86
68
57
51
50
49
48
48
48
48
50
52
55
59
62
63
64
65
64
64
64
64
64
64
63
62
61
59
56
54
52
50
48
46
45
44
43
42
41
41
41
41
41
41
42
43
44
45
46
46
47
47
47
48
48
48
48
49
52
60
73
90
109
128
133
136
136
130
109
91
75
63
57
55
56
56
57
58
59
60
61
62
63
64
65
65
64
64
63
62
61
61
61
63
69
72
73
72
69
68
68
68
69
74
84
89
91
89
82
82
94
118
156
169
167
152
118
62
12
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
41
48
52
53
53
51
56
63
70
73
72
67
59
48
35
14
6
2
1
1
1
1
1
1
1
1
2
7
18
39
81
89
93
93
91
81
70
65
63
63
63
61
58
55
52
49
48
48
48
49
50
51
53
54
56
57
56
55
53
50
47
46
44
43
42
42
41
41
41
41
42
42
42
42
42
42
43
43
43
43
43
44
44
45
45
45
45
45
44
44
44
44
44
44
44
44
45
45
45
45
46
47
49
52
58
65
65
63
57
49
44
45
53
67
87
96
96
94
85
64
47
48
54
66
81
86
86
83
77
69
63
63
71
91
129
178
198
207
206
196
163
132
104
81
64
54
51
50
49
48
48
48
48
50
52
56
59
61
63
64
64
64
64
64
64
64
64
64
63
62
59
58
56
54
52
50
48
47
46
45
45
44
44
44
45
45
46
46
47
47
48
48
48
48
48
48
48
49
51
56
67
83
99
114
127
136
136
133
125
112
89
74
64
57
55
56
57
57
58
59
61
62
63
64
65
65
65
65
64
64
63
62
61
61
61
65
70
72
73
72
68
68
68
68
69
73
83
88
89
88
81
82
93
118
156
170
168
155
124
68
14
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
40
43
45
46
46
42
43
47
51
53
53
48
40
30
20
5
3
1
1
1
1
1
1
1
1
1
2
7
19
42
83
90
93
93
91
83
72
65
62
62
63
63
62
60
58
54
53
53
53
53
55
57
58
58
57
55
52
49
46
44
42
42
41
41
41
41
41
41
41
41
42
42
42
42
43
43
43
43
43
43
44
44
44
44
45
45
45
45
45
44
44
44
44
45
45
45
45
46
47
48
49
53
56
60
65
73
73
72
68
59
46
45
47
56
74
92
93
92
83
63
47
47
53
64
80
86
86
84
79
72
64
62
65
77
103
156
184
202
209
206
184
156
126
99
76
59
54
51
50
49
48
48
48
48
49
52
55
57
60
62
63
64
64
64
64
64
64
64
64
63
62
60
59
57
56
54
52
51
50
50
49
49
49
49
49
50
49
49
49
49
49
49
48
49
49
49
52
55
62
72
92
109
122
132
136
137
132
122
107
90
70
62
58
56
56
57
58
59
60
61
63
64
65
66
66
66
65
65
64
64
63
61
61
61
61
67
71
72
72
71
68
68
68
69
69
73
82
87
88
87
81
81
93
117
156
170
169
157
128
74
17
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
38
39
39
39
39
31
29
27
26
24
22
17
12
7
4
1
1
1
1
1
1
1
1
1
1
2
3
8
21
46
84
91
93
93
91
85
75
67
61
61
61
62
62
62
61
60
60
59
59
59
59
59
58
55
50
45
43
42
42
41
41
41
41
41
41
41
41
41
42
42
42
43
43
44
44
45
45
45
45
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
47
47
48
50
52
56
62
68
75
79
82
83
82
80
74
52
47
46
49
57
82
87
86
78
59
45
46
52
63
79
86
86
85
81
75
67
63
63
68
81
129
165
191
206
212
202
179
151
121
93
68
59
54
51
50
49
48
48
48
48
49
50
52
55
58
61
62
63
64
64
64
64
64
64
63
62
61
61
60
59
57
56
56
55
54
53
53
52
52
51
51
50
50
49
49
49
49
49
49
50
52
59
70
84
101
123
131
135
136
137
133
119
102
84
68
59
57
56
57
57
59
60
61
62
63
65
66
67
67
67
66
65
65
64
64
62
61
61
61
62
69
72
73
72
70
68
68
68
69
70
73
81
86
87
86
80
81
93
117
156
171
169
160
132
79
20
7
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
37
36
34
32
30
25
22
18
15
13
8
7
5
3
3
2
2
1
1
1
1
1
2
2
3
3
5
11
24
47
85
91
93
93
92
86
77
68
61
57
58
59
61
61
61
61
60
59
58
56
49
44
42
42
42
41
41
41
41
40
40
41
41
41
41
42
43
45
46
48
50
52
54
55
56
58
58
58
58
58
58
57
56
55
53
52
51
51
50
50
50
50
51
52
53
56
59
62
66
71
80
86
92
98
105
106
103
99
95
92
73
56
48
47
49
59
66
67
63
52
44
44
51
63
79
87
87
85
82
78
70
65
62
62
65
94
131
165
191
207
212
202
184
158
129
93
74
61
54
51
49
49
48
48
48
48
48
48
49
50
52
54
56
57
59
60
61
61
62
62
61
61
60
59
58
57
56
56
55
54
53
52
52
51
50
50
49
49
49
49
49
50
52
57
64
81
97
112
125
133
135
136
136
132
124
101
83
71
63
59
57
57
58
59
60
61
63
64
65
67
68
68
68
67
67
66
65
65
64
63
62
61
61
62
65
71
72
72
72
70
68
68
69
70
71
73
80
84
86
85
80
80
92
117
156
171
170
162
137
86
23
8
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
37
35
33
30
28
24
21
18
14
12
9
8
7
6
5
4
3
3
2
2
2
2
2
3
3
4
5
11
24
47
84
90
93
93
92
87
78
69
61
56
54
55
56
57
57
55
54
51
49
47
45
44
43
43
42
40
40
40
40
40
42
43
45
47
49
53
55
58
60
62
65
67
69
70
72
73
74
75
75
76
76
75
75
75
74
73
72
71
71
70
71
71
73
74
77
80
84
89
94
99
107
112
117
121
124
125
123
118
111
105
91
69
55
48
48
51
53
52
49
43
41
42
51
65
80
87
87
86
83
79
72
68
64
61
61
74
104
138
170
195
210
208
199
182
158
121
96
77
64
56
52
51
50
49
49
48
48
48
48
49
50
50
51
52
53
55
55
56
56
56
56
56
56
55
54
54
53
52
52
51
50
50
50
49
49
49
49
50
51
52
58
65
74
86
100
116
124
130
133
136
135
130
121
109
93
76
68
63
59
58
58
59
60
61
62
64
66
67
68
68
69
68
68
67
67
66
65
64
64
63
62
62
62
64
67
72
72
72
71
69
69
69
70
71
71
73
79
83
85
84
79
80
92
117
157
172
171
163
140
91
26
9
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
37
35
32
29
27
23
21
19
17
16
14
13
12
11
10
7
6
5
4
3
3
3
3
3
3
4
6
13
26
49
83
90
93
93
92
88
80
71
62
55
52
51
51
52
52
52
51
51
50
49
47
44
41
40
39
39
40
41
43
46
49
53
56
59
61
65
67
70
72
74
77
78
80
82
83
85
86
87
88
89
90
90
91
92
92
92
93
93
93
94
95
97
99
101
104
109
113
117
122
127
133
136
139
141
143
142
141
136
129
121
109
86
66
52
49
48
47
44
40
38
38
41
52
67
81
87
88
86
84
80
74
70
66
63
59
64
82
110
143
175
202
208
207
198
183
150
124
101
82
67
56
53
52
51
50
49
49
49
49
49
49
49
49
50
50
51
51
51
51
52
52
51
51
51
51
51
50
50
50
50
49
49
49
50
51
53
56
60
66
73
86
96
106
116
125
133
135
135
134
130
120
109
96
84
73
64
61
59
59
59
60
61
62
64
65
67
68
69
69
69
69
68
68
67
66
65
65
64
63
63
62
62
64
66
70
72
72
72
71
69
69
70
71
72
72
74
78
82
83
83
79
80
92
118
158
172
171
164
142
95
29
10
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
36
34
31
28
27
24
23
22
21
21
20
20
19
17
16
14
11
9
7
5
4
3
3
4
4
5
8
15
29
52
83
90
93
93
93
90
83
73
63
55
50
49
48
48
49
50
51
51
51
49
46
41
37
36
37
39
42
45
49
54
60
64
67
70
73
75
77
79
81
82
84
86
88
89
91
93
94
96
97
99
100
102
103
105
106
108
110
111
113
115
117
120
123
126
130
135
139
143
146
150
153
156
157
159
159
158
156
153
147
137
126
105
81
60
50
48
45
40
36
35
36
41
55
70
83
88
88
87
85
82
77
72
69
65
60
60
66
85
114
148
186
201
208
208
201
178
155
130
106
85
66
59
55
52
51
50
50
49
49
49
49
49
49
49
49
49
48
48
48
48
49
49
49
49
49
49
49
50
50
51
52
54
56
59
63
70
77
85
94
105
119
127
134
137
138
136
133
128
122
113
95
82
72
66
62
60
60
59
60
61
62
64
65
67
68
70
70
70
70
70
69
68
68
67
66
65
65
64
63
63
63
64
66
68
71
72
72
71
70
69
69
71
73
73
74
74
78
81
82
81
79
80
92
119
160
172
172
165
144
100
31
11
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
36
34
31
28
27
25
25
24
24
24
24
24
24
24
23
22
20
17
13
8
5
4
4
4
5
7
10
18
33
56
83
89
92
93
93
91
86
77
65
56
51
49
48
48
50
52
52
48
41
34
32
33
34
36
38
43
49
54
60
64
69
72
74
76
78
80
82
83
85
86
89
91
92
94
96
98
100
102
103
105
107
109
111
112
114
117
119
121
124
126
131
135
139
143
147
152
155
158
161
164
167
168
169
170
171
171
169
167
163
154
141
126
100
73
52
49
45
40
36
35
36
44
58
73
84
88
88
87
86
83
79
74
71
67
62
60
59
66
84
115
162
188
204
211
212
201
184
162
137
112
84
69
60
55
53
51
51
50
50
49
49
49
48
48
48
48
48
48
48
48
48
49
49
49
50
50
51
52
53
55
60
66
74
84
95
110
121
130
136
140
141
142
141
140
137
131
120
106
92
78
67
64
62
61
60
60
60
61
62
63
66
68
69
70
71
71
71
71
70
70
69
68
68
67
66
65
65
64
64
64
64
66
68
71
72
72
72
71
70
70
70
73
74
75
75
75
77
79
81
80
78
79
93
120
161
173
172
166
146
103
34
12
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
36
33
30
27
27
25
25
25
25
25
25
26
25
25
25
24
24
24
24
23
17
12
9
8
12
20
27
35
44
58
79
87
91
91
91
91
89
84
75
63
54
53
53
54
54
51
43
36
31
31
33
35
36
37
40
46
52
58
64
69
74
77
80
82
85
88
91
93
96
99
102
105
107
110
112
115
117
119
121
123
125
127
129
131
133
136
139
142
145
149
155
159
162
165
168
171
172
174
175
176
177
178
178
179
179
179
178
178
176
173
161
150
130
102
68
52
48
42
37
35
37
47
61
75
85
89
90
89
87
84
80
77
74
71
67
62
60
59
62
72
113
148
178
200
210
212
207
198
184
164
134
112
92
75
64
57
55
53
52
51
51
50
50
50
50
50
51
51
52
53
55
58
61
65
71
80
89
98
107
117
129
135
140
142
144
145
146
146
145
143
139
133
123
111
98
81
73
68
64
63
62
61
61
61
61
62
63
65
67
69
71
72
72
72
72
72
71
71
70
70
69
68
68
67
66
65
65
65
65
65
67
69
71
72
72
72
71
71
70
70
72
76
77
78
77
76
77
78
79
79
78
79
93
121
163
174
173
167
148
107
37
14
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
37
33
30
27
26
25
25
26
26
26
27
27
28
27
27
25
24
24
24
24
23
22
21
20
22
35
45
52
57
63
77
84
89
90
90
90
89
86
81
72
63
60
58
57
54
44
36
32
32
33
35
36
37
38
40
48
55
63
69
75
81
84
88
91
94
98
101
104
107
110
114
116
119
121
124
127
129
131
134
136
139
142
145
148
152
157
161
165
168
171
174
175
176
177
177
178
179
179
179
180
180
180
180
180
180
180
180
180
180
179
173
164
150
126
92
59
51
45
41
38
39
47
61
75
86
91
91
91
89
86
81
77
75
73
70
66
62
60
59
62
80
109
140
170
195
209
210
207
201
193
175
157
139
121
104
87
78
71
67
64
62
62
63
64
66
70
74
79
85
91
99
106
112
118
123
128
131
135
138
141
143
144
144
144
143
139
134
127
120
112
100
92
85
79
74
68
65
63
62
62
61
61
62
63
64
66
68
70
71
72
73
73
73
73
73
72
72
71
71
70
69
68
68
67
67
66
66
67
67
68
70
71
72
72
72
72
71
71
71
71
74
79
80
80
79
77
77
78
78
78
77
79
94
123
165
174
173
168
150
110
39
14
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
38
34
30
27
26
25
25
26
26
27
27
27
28
29
29
27
25
24
24
24
24
25
27
31
35
46
57
66
72
75
81
85
87
88
89
89
89
88
85
79
70
66
62
56
49
36
32
31
32
34
36
37
38
39
41
50
59
67
75
81
87
90
94
98
101
105
109
112
115
118
121
124
126
129
131
135
137
140
143
146
150
154
158
163
167
172
175
178
179
181
181
181
181
181
181
181
181
181
181
181
181
181
181
181
181
181
181
181
181
181
179
174
165
148
118
75
59
49
43
41
41
48
60
74
85
92
93
92
90
87
82
78
76
74
72
69
65
62
59
58
64
80
103
131
162
191
202
207
207
205
196
187
175
163
149
132
122
114
108
104
101
101
103
104
107
112
116
120
124
128
133
136
139
141
143
144
144
144
142
140
135
130
126
121
116
108
102
96
90
84
76
71
68
66
64
63
62
62
62
62
63
64
65
67
69
71
72
73
74
74
74
74
74
74
74
73
72
72
71
71
70
69
69
68
68
68
68
69
69
70
71
72
72
72
72
72
71
71
71
72
77
82
84
84
82
77
77
77
77
77
77
78
95
125
166
175
174
168
151
113
41
15
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
40
36
32
28
26
25
25
25
26
26
26
26
27
29
30
29
26
24
23
23
23
24
28
34
39
47
59
71
81
85
86
86
87
87
88
88
88
87
86
83
76
69
62
53
42
32
31
31
32
35
37
38
39
40
43
54
64
72
79
85
91
95
99
103
107
112
115
118
121
124
128
131
133
136
139
143
146
149
152
155
161
166
171
175
178
182
183
183
183
183
182
182
182
181
181
181
181
182
182
182
182
182
182
182
182
181
181
181
181
181
181
180
176
165
145
98
72
55
47
44
44
49
59
73
85
93
94
94
92
89
84
80
77
75
73
71
69
65
61
58
59
63
75
94
120
158
181
195
203
205
204
201
197
191
184
173
165
158
153
148
145
145
145
147
148
150
151
152
151
151
149
146
144
140
137
133
130
126
121
116
108
102
96
89
83
76
72
69
67
65
64
64
63
63
63
63
63
64
64
65
67
69
70
72
73
75
75
76
76
76
75
75
75
75
74
74
73
72
72
72
71
70
70
70
70
70
70
71
71
72
72
72
72
72
72
72
71
71
72
73
81
86
88
87
86
78
77
76
76
76
76
78
96
127
168
176
174
169
152
115
43
16
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
45
42
36
30
26
24
24
24
24
25
24
24
26
28
29
29
26
24
23
23
24
24
23
23
24
32
48
64
77
85
89
89
89
88
88
87
86
86
85
83
77
69
59
48
36
31
31
31
33
36
39
40
41
42
44
57
67
76
83
89
95
100
105
109
113
118
122
125
128
132
136
139
142
145
148
153
157
160
165
169
177
181
184
186
186
185
184
184
183
182
181
181
181
181
181
182
182
183
183
184
185
185
184
184
183
182
181
181
181
181
182
182
181
178
168
127
91
66
51
46
46
49
58
71
84
93
95
95
94
91
86
82
79
76
73
72
71
68
65
60
59
59
62
68
81
112
141
167
188
199
203
201
199
197
194
190
187
183
180
176
173
170
167
165
162
159
157
154
151
148
142
135
127
119
110
98
90
83
78
73
69
68
66
65
65
64
64
64
64
63
63
63
63
63
64
65
66
68
69
71
73
74
75
76
77
77
77
77
77
77
76
76
75
75
75
74
73
73
73
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
72
73
75
86
90
92
92
90
80
77
76
76
76
76
78
97
129
170
176
174
169
152
117
45
17
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
26
33
36
37
36
34
32
30
30
30
32
32
32
30
29
23
22
22
22
23
26
28
28
28
26
25
27
33
44
59
77
83
87
89
89
88
87
86
84
82
77
69
59
48
37
32
32
33
36
41
42
42
42
44
49
65
76
85
92
98
106
111
116
120
125
130
134
137
141
144
149
153
156
160
163
169
173
179
184
189
191
190
190
188
187
183
181
180
180
180
180
181
182
184
186
189
191
194
196
198
199
199
199
198
196
192
188
184
182
181
181
181
182
182
181
166
131
95
66
50
47
48
54
65
80
93
96
97
97
94
89
85
81
78
75
72
72
71
69
66
61
60
59
60
61
68
84
105
128
151
175
185
191
192
192
189
186
183
179
176
171
167
163
158
152
141
131
120
108
97
84
78
73
70
67
66
65
65
64
64
64
64
64
64
65
65
65
65
66
66
67
69
70
71
73
74
75
76
77
77
78
79
79
79
79
79
78
78
77
77
76
76
75
75
75
74
74
74
74
74
73
73
73
73
73
72
72
72
72
72
72
72
72
72
72
72
73
74
77
81
92
97
99
98
96
84
78
76
75
75
75
78
99
132
172
177
175
169
153
119
47
18
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
16
18
19
20
21
21
21
21
22
22
22
22
22
22
21
21
21
23
25
29
34
36
36
36
35
30
29
29
33
37
46
53
61
70
79
86
87
86
85
83
78
72
63
52
41
37
38
41
44
45
43
42
43
47
56
73
83
91
98
104
112
117
121
126
130
136
140
144
148
151
156
160
163
168
172
179
184
188
191
192
192
189
186
183
180
179
179
179
180
182
185
188
190
193
196
200
203
205
207
209
210
211
211
210
209
206
202
197
192
186
182
181
182
182
182
177
157
126
92
62
49
49
52
60
74
90
96
99
99
98
92
87
83
79
76
73
72
72
71
69
65
63
61
59
59
61
67
76
89
104
125
138
149
158
164
166
166
163
159
154
145
136
127
117
107
96
89
83
79
75
71
70
68
68
67
67
68
69
69
70
71
72
72
73
74
74
75
75
76
77
77
78
78
79
79
80
80
80
80
81
80
80
80
80
79
79
78
78
77
77
76
76
75
75
75
75
74
74
74
74
74
73
73
73
73
73
73
73
73
73
73
72
72
72
73
73
75
78
81
86
97
103
104
104
101
87
80
76
75
74
75
78
100
134
173
178
175
170
154
120
48
18
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
19
19
19
19
19
20
20
20
20
20
20
20
21
22
23
25
27
30
34
37
41
42
43
42
42
38
35
33
32
31
34
37
42
49
57
65
72
78
82
82
80
76
70
63
53
50
51
52
51
47
43
42
46
53
66
81
89
97
104
110
117
122
127
132
136
143
147
151
155
159
164
167
172
178
183
189
192
193
194
192
187
182
179
178
176
178
180
183
185
188
191
194
197
200
203
207
210
212
214
215
217
217
217
217
216
215
212
208
203
197
188
184
182
182
182
181
173
153
122
86
56
51
50
55
65
85
93
98
100
100
96
90
85
81
77
74
73
72
71
70
68
66
64
61
59
58
60
63
68
75
87
97
106
115
122
127
127
125
121
116
107
99
92
86
80
74
72
70
70
70
71
72
73
74
75
76
77
77
78
79
79
80
80
81
81
81
82
82
82
82
83
83
83
83
83
82
82
82
82
82
81
81
80
80
79
78
78
78
77
77
76
76
76
75
75
75
75
75
74
74
74
74
73
73
73
73
73
73
73
73
73
73
73
73
74
75
78
82
87
92
103
108
110
110
107
91
82
77
75
74
74
78
101
136
175
179
175
170
154
121
49
19
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
29
28
28
27
26
26
25
25
25
25
25
26
27
28
30
33
37
40
42
45
46
47
47
47
47
46
43
40
38
35
34
34
33
34
37
42
51
62
70
73
75
76
74
70
64
61
59
57
52
46
42
45
52
63
76
89
96
103
110
116
123
129
134
139
144
150
154
159
163
167
172
177
183
189
193
196
196
194
191
186
179
175
174
175
177
181
184
188
191
193
196
199
202
205
209
213
215
216
218
219
219
220
220
220
220
220
219
216
213
209
199
190
185
183
182
182
181
171
151
118
72
58
51
52
57
76
88
96
101
102
100
95
89
83
78
75
74
73
72
71
70
69
67
64
61
59
59
59
60
61
64
68
73
78
84
88
88
86
84
80
74
71
70
69
69
70
71
72
73
75
77
79
81
82
83
84
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
85
84
84
84
83
83
82
82
81
81
80
80
79
79
78
78
77
77
77
76
76
76
76
75
75
75
75
75
75
74
74
74
74
73
73
73
73
73
73
74
74
74
75
76
78
82
87
93
98
109
114
116
116
113
96
84
78
75
74
74
78
103
139
176
179
175
170
154
122
50
19
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
38
38
38
37
37
36
36
35
35
35
35
36
37
39
40
43
45
46
47
48
50
50
50
50
50
49
48
46
44
42
39
37
35
34
34
34
35
37
42
48
59
65
66
65
63
58
52
46
42
40
42
51
64
76
86
96
103
110
117
123
130
136
141
147
152
158
163
167
171
175
182
188
194
198
199
198
195
189
182
173
172
172
174
177
183
189
190
192
193
194
198
201
205
210
213
217
219
220
220
221
221
221
221
221
221
221
222
221
219
216
210
202
193
185
183
183
182
181
172
153
101
72
56
50
51
63
80
92
99
103
103
100
94
87
80
76
74
73
72
71
71
71
70
68
65
61
59
59
59
60
60
61
62
63
64
65
65
65
65
65
65
66
67
69
71
74
77
79
81
83
84
85
85
86
86
86
86
86
86
86
86
86
86
86
86
85
85
85
85
85
85
85
84
84
84
83
82
82
81
80
80
79
79
78
78
78
77
77
77
77
76
76
76
76
76
76
76
76
76
75
75
75
75
75
75
75
75
75
75
75
75
76
77
78
79
83
88
94
100
105
114
120
122
122
120
101
87
79
75
73
74
78
104
141
177
180
176
170
155
122
50
19
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
51
51
50
50
50
49
49
49
49
49
49
49
50
51
52
54
55
56
57
58
60
60
60
60
60
59
57
56
54
52
50
48
46
44
42
39
38
37
37
37
38
39
39
39
39
39
39
40
42
46
61
72
81
89
95
106
113
120
126
131
139
145
150
155
161
167
171
176
180
186
195
200
201
201
199
190
177
170
167
168
172
179
184
188
190
191
191
192
193
196
203
209
213
216
218
219
219
219
218
216
213
213
213
214
216
219
221
222
223
223
219
215
207
198
188
183
183
183
181
177
147
110
79
58
50
51
62
77
91
100
104
104
102
97
90
80
76
74
72
72
71
71
71
70
69
67
64
63
61
61
61
60
60
60
61
61
62
63
64
65
68
71
73
75
76
77
76
75
73
70
67
66
66
67
68
69
71
74
77
79
81
81
82
82
83
83
83
83
83
83
82
82
82
82
81
81
80
80
80
79
79
79
78
78
78
78
78
78
78
79
79
80
80
80
80
80
80
80
80
80
80
80
80
80
80
80
79
80
80
80
81
82
83
84
87
92
97
103
109
113
121
127
129
130
128
110
93
82
76
73
74
79
106
144
178
180
176
170
155
123
51
20
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
60
60
60
60
59
59
59
59
58
58
59
59
59
60
61
62
63
64
65
65
66
67
67
67
66
65
64
63
61
60
58
56
55
53
51
49
48
46
45
43
43
43
43
43
44
46
48
52
58
65
76
83
90
97
104
114
121
127
132
138
146
152
157
162
168
174
179
184
190
197
201
202
201
196
186
171
168
167
168
173
183
186
188
189
190
189
189
191
194
200
207
211
214
216
217
215
212
208
203
199
196
194
195
196
198
203
209
215
219
222
222
220
216
208
199
187
184
183
182
181
169
141
109
80
58
50
54
63
76
92
102
103
103
101
97
88
82
77
74
72
71
71
71
70
70
69
68
66
65
64
62
61
61
61
61
62
63
65
67
70
73
74
74
73
70
65
61
57
54
52
50
49
48
47
47
49
50
52
54
56
62
66
71
74
77
79
80
81
81
81
81
81
81
81
81
80
80
80
80
79
79
79
80
80
81
82
82
83
84
85
86
86
86
87
87
87
87
88
88
87
87
87
87
86
86
86
86
86
86
86
87
88
89
91
95
99
105
110
115
118
124
131
134
135
134
117
98
84
77
73
74
79
108
145
179
180
176
170
155
123
51
20
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
70
70
69
69
69
69
68
68
68
68
68
68
69
69
70
71
71
72
72
73
73
73
73
73
73
72
71
70
69
67
65
64
63
61
60
58
57
56
55
53
52
52
52
53
55
58
62
66
72
78
86
92
99
106
113
122
128
134
139
145
153
159
164
170
174
181
187
193
198
203
203
200
191
181
171
163
165
170
176
182
188
189
189
188
186
186
187
191
196
202
209
211
213
213
211
206
200
195
190
186
184
184
185
186
189
194
198
204
210
216
222
223
221
217
209
196
188
185
183
183
179
163
138
107
77
55
52
54
63
77
95
100
102
102
100
95
89
84
79
75
72
72
71
71
70
70
69
68
67
66
64
63
62
62
63
65
67
69
71
73
74
72
69
65
61
57
55
53
53
52
52
53
53
52
51
49
47
45
44
44
47
50
54
57
61
67
70
74
76
78
79
80
80
80
80
80
80
80
80
81
81
82
83
84
86
88
89
90
91
92
93
94
94
94
95
95
95
95
95
95
95
95
94
94
94
93
93
93
93
93
94
95
97
99
102
106
111
115
119
122
127
134
138
140
139
125
103
88
78
74
74
80
109
147
180
181
176
170
154
123
51
20
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
79
79
79
79
79
78
78
78
78
78
78
78
78
78
79
79
79
80
80
80
81
81
80
80
80
79
78
77
76
75
73
72
71
70
69
68
67
66
65
64
64
64
65
66
68
72
75
80
84
89
95
102
109
115
122
129
135
141
146
152
160
166
171
177
181
189
195
201
205
205
200
190
177
165
160
163
170
178
185
189
189
188
186
184
183
183
186
191
198
204
208
210
210
208
203
195
189
184
180
178
178
180
181
183
186
189
192
195
200
207
218
222
223
222
218
206
195
188
185
184
183
178
162
137
105
69
57
51
53
61
83
94
99
101
101
99
95
91
86
81
76
74
73
72
71
71
70
70
69
68
66
66
66
66
67
70
72
74
74
74
71
66
61
57
54
53
54
55
57
59
62
64
66
67
66
62
58
53
48
44
41
40
40
42
45
51
56
61
65
69
72
74
76
77
78
79
80
80
81
82
83
85
87
89
91
94
95
97
98
99
100
101
101
102
102
103
103
103
103
103
102
102
102
102
101
101
101
100
101
101
101
102
104
106
109
113
116
120
123
125
129
137
142
144
144
133
110
92
79
74
74
80
110
149
180
181
176
169
154
123
50
19
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
89
89
88
88
88
88
88
87
87
87
87
87
87
87
87
88
88
88
88
88
88
88
88
87
87
86
85
84
83
82
81
80
79
78
77
76
76
75
75
75
75
75
76
78
80
83
86
90
94
99
107
113
119
124
129
137
142
148
153
159
167
173
178
183
188
198
204
206
206
204
188
168
159
157
159
171
182
188
190
189
187
183
181
180
180
181
185
192
198
204
206
206
205
201
196
187
182
178
176
176
177
179
181
183
186
189
192
195
198
200
209
217
222
224
223
216
205
195
187
184
184
183
177
163
137
93
70
55
49
51
64
82
94
99
99
98
96
94
92
88
83
80
76
74
73
72
71
71
71
70
70
71
72
73
75
76
76
75
74
71
62
56
53
52
52
53
53
55
56
59
63
67
72
76
80
82
80
75
68
59
48
42
39
37
37
38
39
42
45
50
57
62
66
70
73
76
78
80
81
82
84
87
89
92
95
98
99
101
102
103
104
105
106
107
108
108
109
109
109
109
109
109
108
108
108
108
107
107
107
108
108
109
110
112
114
117
119
122
125
128
131
139
145
149
149
141
117
97
81
75
75
81
111
150
181
181
176
170
154
122
50
19
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
101
101
101
101
101
101
100
100
100
100
100
99
99
99
99
99
99
99
99
99
98
98
98
97
97
96
95
94
93
92
91
90
90
89
88
88
87
87
87
87
88
89
90
92
94
98
101
105
109
113
119
124
129
134
140
147
152
157
163
169
177
182
187
193
200
207
208
206
198
182
154
153
155
161
176
189
190
190
188
183
178
178
179
179
179
181
186
192
199
202
203
203
200
195
187
178
174
172
172
174
178
182
187
192
195
198
199
199
200
201
204
209
216
222
224
223
217
207
197
187
184
184
183
179
170
135
104
78
59
49
50
59
74
88
96
95
94
94
92
91
89
87
85
83
81
79
78
78
77
77
77
78
78
78
78
77
75
71
65
57
52
51
51
52
52
52
53
53
53
53
57
63
71
78
85
91
92
91
87
81
71
63
56
49
44
39
38
38
38
39
40
42
45
49
53
60
66
71
75
79
83
86
89
92
95
99
100
102
103
104
106
107
108
109
110
111
112
112
112
113
113
113
113
113
113
112
112
113
113
113
114
115
115
116
118
120
121
124
127
130
133
141
148
153
154
149
128
105
85
76
75
82
113
152
182
182
176
170
154
121
48
19
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
111
111
111
110
110
110
110
110
109
109
109
109
108
108
108
108
107
107
107
107
106
106
105
105
104
103
103
102
101
100
99
98
98
97
96
96
96
96
96
97
98
99
100
102
104
108
111
114
118
122
128
133
138
143
147
154
159
164
170
176
183
188
194
201
207
208
206
193
176
157
150
154
165
178
187
190
189
186
181
178
177
177
177
178
178
180
187
193
198
201
202
201
196
189
180
173
171
171
174
178
188
196
202
207
211
213
213
212
210
207
206
209
213
218
223
225
222
215
206
195
186
185
184
183
179
160
133
105
80
61
49
52
59
71
84
92
92
91
90
88
88
87
86
85
83
82
81
81
80
80
80
80
79
79
78
74
69
63
57
52
51
51
51
52
52
52
52
53
53
53
56
61
68
77
87
96
100
100
98
93
84
76
68
61
54
48
45
42
41
39
40
41
43
46
49
55
61
66
71
76
81
85
89
92
95
99
101
102
104
105
107
108
110
111
112
113
113
114
114
114
114
114
114
114
114
114
114
114
114
115
115
116
117
118
119
121
122
125
129
132
136
142
150
156
158
155
136
112
89
77
76
82
114
153
182
182
176
170
153
119
47
18
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
120
120
120
120
120
120
119
119
119
119
118
118
118
117
117
116
116
116
115
115
114
114
113
112
112
111
110
109
108
108
107
106
105
105
105
104
104
105
105
106
107
108
110
112
114
117
121
124
128
132
137
141
146
150
155
161
166
171
177
182
189
196
202
207
209
206
191
173
157
147
153
166
178
187
191
189
185
180
177
176
176
176
177
178
178
181
188
194
198
200
200
197
191
183
175
171
171
173
179
187
200
208
214
219
222
223
223
221
220
217
212
211
213
216
221
225
224
220
214
204
191
187
185
184
183
175
157
133
106
81
58
52
52
58
69
82
87
87
86
85
84
84
84
84
84
83
82
82
81
81
81
80
78
77
74
67
61
56
52
50
50
50
51
51
51
51
51
52
53
53
55
60
67
77
87
100
105
107
106
103
94
86
78
70
63
56
52
48
46
44
43
43
43
45
48
54
59
64
69
74
80
85
89
92
96
99
102
104
106
107
110
111
113
114
115
116
117
117
117
117
117
117
116
116
116
116
116
116
116
116
117
118
118
119
120
123
124
127
131
135
139
144
152
159
162
159
145
120
94
78
77
83
115
153
182
182
177
170
153
118
46
17
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
130
130
130
129
129
129
129
129
128
128
127
127
127
126
126
125
125
124
123
123
122
121
121
120
119
118
117
117
116
115
114
114
113
113
113
113
113
113
114
114
116
117
119
121
123
127
130
133
137
140
145
149
153
157
162
168
173
178
184
188
196
203
208
210
208
194
169
153
145
149
164
180
188
190
189
184
179
176
175
175
176
177
177
178
179
182
188
194
197
198
197
193
186
178
171
170
172
178
187
199
212
219
224
226
228
228
228
228
227
225
220
216
215
216
219
224
225
224
220
212
198
190
187
185
185
183
174
157
134
107
76
60
53
52
55
69
77
81
82
81
79
79
79
80
80
81
81
81
81
80
79
77
75
71
67
58
53
51
49
49
50
50
49
49
48
49
50
52
53
53
55
59
67
77
88
102
109
113
113
111
102
94
86
78
71
63
58
55
52
50
48
47
47
48
50
55
60
65
69
74
80
85
89
93
97
101
103
106
108
110
113
115
116
118
119
120
121
121
121
121
120
120
120
119
119
118
118
118
118
118
119
120
120
121
123
126
127
130
133
138
143
147
154
161
165
164
152
128
100
80
78
84
115
154
183
182
177
170
152
116
44
17
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
139
139
139
139
139
139
138
138
138
137
137
136
136
135
135
134
133
132
132
131
130
129
128
128
127
126
125
124
123
123
122
122
121
121
121
121
121
121
122
123
125
126
128
130
132
136
139
142
145
149
153
157
161
165
168
174
180
185
190
194
205
210
211
209
204
164
147
142
146
158
185
190
191
189
185
177
175
175
175
175
176
178
179
180
181
183
188
193
196
196
195
190
182
174
169
170
174
184
197
210
222
226
228
229
229
230
230
229
229
229
228
223
220
218
219
223
225
225
224
219
206
196
189
186
185
185
183
175
159
136
101
78
62
53
50
55
62
70
75
75
73
71
70
70
72
75
77
78
78
78
75
72
67
62
56
50
49
48
48
49
49
48
47
46
46
46
49
51
52
53
55
59
67
78
90
105
113
118
119
117
109
102
94
86
78
69
64
60
57
55
54
54
55
56
57
60
63
67
71
75
81
86
90
94
98
103
105
108
111
113
116
118
120
121
123
124
125
125
125
125
125
125
124
124
123
123
122
122
122
122
122
123
124
125
126
129
131
134
137
142
147
150
156
163
167
167
160
136
106
82
80
85
116
155
183
182
177
170
152
114
43
16
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
152
152
152
152
151
151
151
151
150
150
149
149
148
147
147
145
145
144
143
142
141
140
139
138
137
136
135
134
133
133
132
132
131
131
131
131
132
132
133
134
136
138
140
142
144
147
150
153
156
159
163
167
170
173
177
184
188
193
198
206
212
212
208
194
162
138
138
148
165
186
191
190
187
182
176
174
174
175
176
179
182
183
183
183
183
184
188
192
194
195
193
185
176
170
169
171
182
197
211
223
229
229
229
230
230
230
230
230
230
230
229
228
226
223
221
223
225
226
226
224
216
206
196
189
186
186
186
184
179
168
141
116
92
72
57
49
50
53
57
64
68
67
65
62
60
57
58
59
60
60
59
58
55
52
49
47
47
47
47
47
46
44
43
43
43
45
48
51
53
53
55
61
70
81
93
109
117
123
125
124
117
109
101
93
85
76
70
66
63
62
61
62
63
64
66
69
71
73
76
79
84
89
94
98
102
106
109
112
114
117
120
122
123
125
126
127
128
128
129
129
130
130
130
130
129
129
129
129
129
129
130
130
131
132
134
137
139
142
144
149
154
156
160
165
170
170
166
146
116
86
82
88
118
155
183
182
177
169
150
111
40
15
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
161
161
161
161
161
161
160
160
160
159
159
158
157
156
156
154
153
152
151
150
149
148
147
146
144
143
142
141
141
140
139
139
139
139
139
139
139
140
141
142
144
146
148
150
152
156
158
161
164
166
170
173
176
180
184
190
194
199
206
212
213
209
191
165
141
136
148
165
181
190
190
186
181
177
175
174
175
178
182
186
187
187
185
184
183
184
188
191
193
193
191
181
173
169
168
174
190
206
219
226
229
229
229
229
229
229
229
229
229
230
229
229
228
226
224
224
225
226
226
225
220
212
203
194
188
186
186
186
184
180
163
144
122
100
79
60
54
52
53
56
59
60
60
59
58
55
53
52
50
49
48
48
47
46
45
45
46
46
46
45
43
42
41
41
42
46
49
51
53
54
56
63
73
85
97
113
121
127
130
129
121
113
105
96
87
78
73
69
67
66
66
67
68
70
71
73
74
76
79
82
88
93
97
101
105
109
112
114
117
120
122
124
126
127
128
130
130
131
131
131
132
132
132
132
132
133
133
134
134
135
135
137
138
139
140
143
146
149
151
155
160
162
164
168
172
172
170
152
124
91
85
90
119
156
183
182
177
169
149
108
38
14
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
171
171
171
171
170
170
170
170
169
169
168
167
166
166
165
163
162
161
160
158
157
156
154
153
152
151
150
149
148
148
147
147
146
146
146
147
147
148
149
150
152
154
156
158
161
164
166
169
171
173
177
180
183
186
191
195
200
206
212
214
211
193
167
144
133
144
164
180
189
190
186
181
177
175
174
175
179
185
190
193
193
192
188
185
184
184
188
190
192
192
189
178
171
168
168
178
198
213
224
228
229
229
229
229
229
229
229
229
229
229
229
229
229
228
226
225
226
226
226
226
223
218
209
200
192
187
187
187
186
185
178
165
148
128
107
82
68
59
54
53
54
56
56
57
56
54
52
49
47
46
44
43
43
42
42
43
43
43
43
42
41
41
41
41
43
47
50
52
53
54
58
67
77
89
102
117
127
133
135
134
125
116
107
98
89
80
75
72
70
70
70
71
72
74
75
76
77
79
82
86
92
97
101
104
107
112
115
117
120
123
125
127
129
130
132
133
133
134
134
134
135
135
135
135
135
136
137
138
138
139
141
142
143
145
147
150
153
155
158
161
166
167
169
171
174
174
172
158
132
96
87
92
121
157
183
182
177
169
147
105
36
13
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
180
180
180
180
180
180
180
179
179
178
177
177
176
175
174
172
171
169
168
167
165
163
162
161
159
158
157
156
155
155
154
154
154
154
154
154
155
155
157
158
160
162
164
166
168
171
174
176
178
180
184
186
189
193
196
201
207
212
215
214
201
169
145
133
136
161
180
189
190
188
180
177
175
174
175
179
186
193
199
200
200
197
191
185
183
184
187
190
191
191
186
175
169
167
168
184
205
219
227
229
229
229
229
229
229
229
229
229
229
229
229
229
229
229
228
227
227
227
227
227
225
221
215
207
198
189
188
187
187
187
186
180
169
155
136
109
91
75
64
57
54
53
54
54
54
54
52
50
48
46
44
42
41
40
40
40
41
41
41
41
40
41
41
42
45
49
52
53
54
55
61
72
83
94
106
123
133
139
141
138
129
118
108
98
89
80
76
74
73
73
73
74
75
76
77
78
80
83
86
91
96
100
104
107
110
115
118
121
123
126
129
131
132
134
135
136
137
137
138
138
138
138
138
138
139
140
140
141
142
144
145
147
149
150
152
156
159
161
164
167
171
173
174
175
176
176
175
163
140
102
91
95
123
158
183
182
177
168
146
101
33
12
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
190
190
190
190
190
189
189
189
188
188
187
186
185
184
183
181
180
178
177
175
173
171
169
168
166
164
163
162
161
161
160
160
160
160
160
160
161
162
163
165
167
170
172
174
176
179
181
183
185
187
189
192
195
199
201
208
214
216
215
213
174
142
131
135
149
184
189
190
188
182
176
174
173
174
177
187
196
203
207
208
207
201
193
185
183
183
187
189
190
189
184
173
167
167
169
191
212
223
228
229
229
229
229
229
229
229
229
229
229
229
229
229
229
229
229
228
228
228
227
227
226
224
219
213
204
192
189
187
187
187
188
187
183
175
163
140
121
102
85
70
59
53
51
51
52
52
52
51
50
48
45
43
42
41
40
40
40
40
40
40
41
41
43
45
48
51
53
54
55
56
66
78
89
100
112
130
141
146
146
143
131
119
108
97
88
80
77
76
75
75
76
76
77
77
78
80
83
87
91
96
101
104
107
111
114
118
121
124
127
129
132
134
135
137
138
139
140
140
141
141
142
142
143
143
144
145
145
146
147
148
150
151
153
155
157
160
163
166
169
172
176
178
178
178
178
178
177
168
146
108
94
99
126
160
184
182
177
167
144
97
30
11
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
202
202
202
202
202
202
202
202
201
201
200
199
198
196
195
193
191
189
188
186
184
182
180
179
177
176
175
174
173
172
172
171
171
171
171
172
173
174
175
177
179
181
183
185
186
189
190
192
193
195
197
200
203
206
210
217
217
216
208
185
133
129
136
154
183
191
190
186
181
175
172
172
175
181
190
202
208
212
215
215
214
205
194
185
182
183
185
187
188
188
181
171
166
166
170
199
217
226
229
229
229
229
229
229
229
229
229
229
229
229
229
229
229
229
229
229
229
228
228
228
227
225
223
219
213
201
193
189
188
188
188
188
188
187
183
172
158
143
126
108
87
75
64
57
53
53
52
52
51
51
50
48
47
46
44
43
43
43
43
43
45
46
48
50
51
53
54
55
57
61
77
89
99
109
122
143
153
156
154
147
131
117
104
93
85
79
77
76
76
77
77
78
78
80
82
87
91
95
98
102
106
109
112
116
119
124
127
129
132
134
137
138
140
141
142
143
143
144
145
146
147
148
149
150
151
153
154
155
156
157
159
160
161
163
164
167
169
171
173
176
181
182
182
182
181
180
179
173
154
117
100
104
130
162
184
181
177
166
140
91
26
9
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
212
212
212
212
212
212
212
212
211
211
210
209
207
206
205
202
200
198
196
194
191
188
186
184
182
180
179
178
177
177
177
176
176
176
177
177
178
179
181
182
185
187
189
190
192
194
196
198
199
201
204
207
209
212
215
218
218
209
189
149
128
134
153
175
189
190
187
181
176
171
171
175
182
190
199
208
212
215
216
217
215
206
195
186
182
182
184
186
187
186
180
169
165
166
171
203
220
227
229
229
229
229
229
229
229
229
229
229
229
229
229
229
229
229
229
229
229
229
229
229
227
226
224
221
217
207
199
193
189
188
188
188
189
189
188
184
176
166
154
139
118
104
90
78
68
59
56
54
53
52
51
50
50
49
48
47
47
47
47
48
48
49
50
52
53
54
54
56
62
71
87
97
106
118
133
156
162
163
158
147
127
112
100
90
83
78
77
77
77
78
79
80
83
85
88
93
96
99
102
106
110
113
117
120
124
128
131
134
136
138
140
142
143
144
145
146
147
148
149
151
152
154
155
156
158
159
160
162
163
164
165
167
168
169
170
172
174
175
176
178
182
184
184
184
183
182
181
175
159
123
105
109
134
164
184
181
176
164
137
86
24
8
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
221
221
221
222
222
222
222
222
221
221
220
218
217
215
214
211
209
207
205
203
200
197
195
192
190
187
186
184
183
183
182
182
182
182
182
183
185
186
188
190
193
195
197
199
200
202
204
205
207
208
211
213
215
216
218
219
214
192
162
132
130
150
171
187
191
188
182
176
171
169
173
181
190
199
206
212
215
216
217
217
216
207
196
186
182
182
184
185
186
185
179
168
164
165
172
206
221
228
229
229
229
229
229
229
229
229
229
229
229
229
229
229
229
229
229
229
229
229
229
229
228
226
224
223
220
213
205
198
192
189
188
188
189
190
190
190
187
182
174
164
147
133
119
105
92
77
70
64
59
56
53
52
51
51
50
50
50
50
50
50
51
51
52
53
54
55
57
62
71
83
97
105
116
130
148
168
171
168
159
144
121
106
95
86
81
78
78
78
79
81
83
86
88
91
94
98
101
104
107
110
115
119
122
126
129
133
135
138
140
142
144
145
146
148
149
151
152
153
155
157
159
160
162
163
165
166
168
169
170
171
172
173
174
175
176
177
178
179
180
181
184
185
186
186
185
183
182
178
162
129
110
114
137
166
184
181
176
163
133
81
21
7
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
231
231
231
231
232
232
232
232
231
231
230
229
227
225
223
220
218
215
213
210
207
205
203
200
198
195
193
192
190
189
189
188
188
188
189
191
192
194
197
199
202
204
205
207
208
210
211
212
213
214
216
217
218
219
219
217
201
169
138
127
143
170
185
190
189
184
176
171
168
170
179
189
198
205
210
214
216
217
218
218
216
208
197
187
182
181
183
184
184
184
178
168
163
165
172
208
222
228
229
229
229
229
229
229
229
229
229
229
229
229
229
229
229
229
229
230
230
230
230
229
228
226
225
223
222
217
211
204
197
191
188
188
189
189
190
192
192
190
188
183
171
160
147
134
120
103
91
81
73
66
60
57
55
53
52
52
52
51
52
52
52
53
54
54
55
58
64
73
83
94
105
114
128
145
165
179
178
170
157
138
114
100
89
83
79
78
79
81
83
85
89
92
95
97
100
103
106
109
112
116
121
124
128
131
134
137
140
142
144
145
148
149
151
152
154
156
158
160
162
164
166
168
169
171
172
174
175
175
176
177
178
179
179
180
181
182
182
183
183
183
185
186
187
187
186
185
184
180
166
135
115
119
141
168
183
181
176
161
129
75
18
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
240
241
241
241
242
242
241
241
241
241
241
240
239
237
235
231
227
223
219
215
212
209
207
206
204
202
200
199
198
197
196
196
196
197
197
199
201
203
205
207
209
210
211
212
213
214
214
215
216
217
218
219
219
220
219
213
173
142
127
130
170
186
191
189
186
179
170
167
168
173
189
196
203
208
212
216
217
218
218
218
216
209
198
187
181
181
182
183
183
183
178
167
163
164
171
208
222
228
229
229
229
229
229
229
229
229
229
229
229
229
229
229
229
229
229
230
230
230
230
230
229
227
225
224
223
221
216
209
202
195
190
188
188
188
189
191
193
194
194
193
188
181
171
161
148
131
118
106
95
85
74
68
63
59
56
54
54
53
54
54
55
55
55
56
57
66
77
87
97
104
114
127
144
163
182
187
182
169
151
129
105
93
85
80
79
80
82
85
88
91
95
98
100
102
105
108
111
115
118
122
127
130
134
137
139
142
144
146
148
150
152
154
155
157
160
163
165
168
170
172
174
176
177
178
179
180
181
182
182
183
183
184
184
184
185
185
185
186
186
186
187
187
188
188
187
186
185
181
169
141
121
124
145
170
183
181
176
159
125
70
16
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
252
251
249
246
244
241
240
239
239
240
241
241
242
243
243
242
241
240
237
233
226
221
216
212
210
207
206
205
204
204
203
203
203
204
204
206
208
210
212
214
215
215
216
216
217
217
218
219
220
221
221
221
221
219
214
162
133
125
136
166
192
191
189
185
181
166
164
166
172
185
195
201
207
212
216
218
219
219
219
219
217
209
199
189
182
181
181
182
182
182
178
168
163
163
168
206
222
228
229
229
228
229
229
229
229
229
229
229
229
229
229
229
229
229
230
230
230
230
230
230
229
227
226
224
223
222
220
216
210
202
194
191
189
188
188
189
191
193
195
197
197
195
191
185
177
163
152
140
128
117
104
95
87
81
75
69
66
64
62
61
61
62
65
70
78
90
97
103
110
118
135
153
172
187
196
192
177
157
134
112
91
84
82
81
82
87
91
95
98
100
103
105
107
110
113
117
120
124
128
131
135
138
141
143
146
148
150
152
154
157
160
162
165
168
171
174
176
178
180
182
183
185
186
186
187
187
187
187
187
187
187
187
187
187
187
187
187
187
187
188
188
188
188
189
188
187
186
183
172
147
127
131
150
172
183
180
175
155
118
62
13
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
180
181
182
185
190
194
199
200
200
198
196
198
201
205
211
220
227
233
236
235
233
230
226
221
217
213
210
209
208
207
207
207
207
208
209
213
215
216
216
216
215
215
215
215
215
217
218
219
219
216
203
192
178
161
143
124
124
141
165
186
192
189
186
181
173
162
162
168
177
188
198
205
211
215
218
219
219
219
219
219
217
211
201
191
184
180
181
181
181
181
178
169
163
161
165
200
220
227
228
228
228
228
229
229
229
229
229
229
229
229
229
229
229
230
230
230
230
230
230
230
229
227
226
224
223
222
222
219
214
208
199
194
191
189
188
188
190
191
194
196
198
199
198
195
190
180
170
160
149
139
125
115
107
99
92
85
81
78
76
76
78
81
85
90
96
102
107
114
125
138
158
175
189
198
200
187
165
140
117
99
86
84
83
85
89
94
98
100
103
105
108
110
113
116
119
124
128
131
135
138
142
144
147
149
151
154
157
159
162
164
168
171
174
177
179
182
184
186
187
188
188
189
189
189
189
189
189
189
189
189
188
188
188
188
188
188
188
188
188
188
188
189
189
189
189
188
187
184
174
150
132
136
154
175
183
180
174
151
112
56
10
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
148
162
177
189
197
202
206
207
207
205
204
204
204
204
204
208
214
220
226
232
235
234
232
228
224
219
216
213
212
211
210
211
212
214
216
219
218
217
212
202
197
198
201
203
203
198
187
175
160
145
132
128
125
121
115
121
140
164
184
193
190
186
182
176
164
159
162
170
180
190
202
209
214
217
219
219
219
219
219
219
218
212
204
194
186
181
180
180
181
180
178
170
163
160
162
193
216
226
228
228
228
228
228
229
229
229
229
230
230
230
230
230
230
230
230
230
230
230
230
230
229
227
226
224
223
223
222
221
218
212
203
197
193
190
189
188
189
190
192
194
198
200
201
201
198
192
185
176
167
157
144
134
126
118
111
103
99
97
95
95
96
99
102
105
108
114
122
133
146
160
179
192
201
203
198
173
146
122
103
90
85
86
88
92
97
101
104
106
108
110
114
117
120
124
127
132
136
139
142
145
148
151
153
155
158
161
164
167
170
173
177
180
183
185
187
189
189
190
191
191
192
192
192
192
192
191
191
191
191
191
190
190
190
190
190
189
189
189
189
189
189
189
189
189
189
188
188
185
176
153
137
140
158
177
183
180
173
147
105
49
9
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
152
178
200
216
224
226
226
226
226
226
226
225
222
217
211
207
206
209
214
223
232
234
234
232
230
225
222
219
216
215
215
216
218
220
222
217
205
194
182
165
154
155
156
157
153
140
123
105
86
71
71
80
94
108
119
141
168
185
194
193
186
184
178
169
157
157
163
172
183
193
206
213
216
218
219
219
219
219
219
219
219
214
207
197
189
182
180
180
180
180
178
171
164
160
160
184
211
224
228
228
228
228
228
228
228
229
229
230
230
230
230
230
230
230
230
230
230
230
230
230
228
227
225
224
223
223
223
222
220
215
207
200
195
192
190
189
188
189
190
193
197
200
203
204
204
200
195
188
181
172
160
151
143
136
129
122
118
116
114
113
113
114
115
118
121
131
143
156
170
182
197
204
206
201
188
151
124
105
92
87
88
91
95
100
104
108
110
112
114
117
121
125
128
132
136
141
144
147
149
152
155
157
160
163
166
170
173
177
180
183
186
188
190
192
193
193
194
194
194
194
195
195
195
195
195
194
194
194
194
194
193
193
192
192
192
192
191
191
191
191
191
190
190
190
190
189
188
186
177
156
141
145
162
179
183
180
171
143
98
43
7
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
186
210
221
226
227
227
226
226
225
225
225
225
225
225
224
217
210
207
207
210
225
231
234
234
234
230
228
225
222
220
221
223
224
224
222
202
160
129
109
98
83
72
62
50
36
23
23
28
39
54
80
99
114
128
143
177
190
195
193
189
184
181
172
161
153
154
162
173
184
196
210
215
217
218
218
219
219
219
219
219
219
217
210
202
192
184
181
180
179
179
178
172
165
160
158
174
205
222
228
228
228
228
227
227
228
228
229
229
230
230
230
230
230
230
230
230
230
230
230
229
228
226
225
224
223
223
223
223
221
218
209
203
198
194
191
189
189
189
190
192
197
200
203
205
206
205
201
196
190
184
174
166
159
152
145
139
134
131
127
125
123
123
126
132
141
159
171
181
190
199
208
210
205
192
165
123
103
92
88
88
93
98
103
107
109
112
114
117
120
124
129
133
137
141
145
149
151
154
156
159
163
166
169
173
176
181
184
187
190
192
194
195
195
196
196
197
198
198
199
199
199
199
199
199
199
199
199
199
198
198
197
197
196
196
196
195
195
194
193
193
192
192
191
191
190
189
189
187
178
159
145
150
165
180
183
179
170
138
91
37
5
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
197
216
224
226
226
224
223
223
223
224
224
224
224
225
225
224
218
212
207
207
211
220
228
233
234
233
232
229
227
227
230
230
218
184
115
59
41
27
18
11
8
5
4
6
10
28
49
73
97
118
135
141
152
166
185
196
196
193
189
184
182
174
162
152
150
152
160
172
186
201
214
216
217
217
217
218
219
219
219
220
220
219
215
208
199
188
183
180
179
179
178
174
167
161
158
162
190
212
226
228
228
227
227
227
227
227
228
228
229
229
229
229
230
230
230
230
229
229
229
228
226
225
224
224
224
223
223
223
222
218
210
203
198
194
191
189
189
189
190
193
198
201
204
207
209
209
207
204
199
192
183
176
169
163
157
149
145
143
141
141
146
153
162
171
180
188
194
200
206
211
211
204
182
151
117
95
92
92
94
99
107
111
114
116
118
122
125
129
133
138
143
147
151
154
157
160
163
166
169
173
178
181
185
188
191
194
196
197
198
199
200
200
201
202
203
204
204
204
205
205
205
206
206
206
206
206
206
205
205
204
204
203
202
202
201
200
200
199
198
197
196
195
194
193
192
190
189
187
179
161
151
156
170
182
183
179
166
130
80
29
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
205
219
225
226
225
223
223
223
223
224
224
224
224
224
225
225
222
216
210
207
211
219
227
232
234
234
233
232
231
231
226
189
138
87
47
24
17
12
8
6
4
5
13
27
50
83
103
120
133
141
152
162
175
186
194
197
194
189
185
183
181
167
156
149
148
150
158
172
188
205
216
216
216
216
216
217
219
219
219
220
220
220
218
214
206
193
186
182
179
179
177
175
169
163
158
159
177
200
220
227
228
227
227
227
227
227
227
227
227
228
228
228
228
228
228
228
228
227
227
226
225
225
224
224
224
224
224
223
220
216
207
201
196
193
190
189
190
191
194
197
202
206
209
211
212
212
210
207
204
198
190
184
178
173
168
164
163
163
164
167
172
177
183
188
192
199
204
209
211
212
199
171
142
116
101
94
95
98
103
108
114
116
119
122
125
131
135
140
144
148
154
157
161
164
168
173
176
180
184
187
191
193
196
197
199
200
201
202
203
203
204
205
205
205
206
206
206
207
207
207
207
207
208
208
208
208
208
208
207
207
207
207
206
205
205
204
203
202
201
200
199
197
196
195
193
191
190
187
180
162
154
160
172
183
183
178
162
123
72
24
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
207
220
225
226
225
222
222
223
224
225
224
224
224
224
225
225
223
217
211
209
211
219
227
233
234
234
234
233
230
222
171
117
70
34
16
8
6
5
4
3
6
19
39
65
92
120
134
145
153
159
171
181
190
196
197
195
190
186
184
183
176
160
151
147
147
149
157
172
191
209
217
216
215
213
213
216
218
219
220
220
220
221
220
217
212
200
191
185
180
179
177
176
172
166
159
157
166
187
210
225
228
227
227
227
227
226
226
226
226
227
227
227
227
227
227
227
226
226
226
225
225
224
224
224
224
224
223
221
217
211
203
197
194
191
191
192
194
197
200
204
208
210
212
214
214
213
211
209
206
202
197
192
188
184
181
180
179
180
182
184
189
192
195
199
203
207
210
211
206
194
161
134
114
101
97
99
104
108
113
117
121
124
128
132
136
143
148
152
156
160
165
170
174
178
182
186
190
192
195
197
199
200
201
202
203
204
204
204
205
205
206
206
206
207
207
207
207
207
207
208
208
208
208
208
209
209
209
209
209
209
209
209
209
208
208
207
206
205
204
204
202
200
199
197
194
191
190
188
180
164
158
164
175
183
183
177
158
115
64
19
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
206
220
225
225
225
222
221
222
224
225
224
224
224
224
225
224
222
217
212
210
214
222
229
233
235
234
233
227
210
180
95
48
22
11
6
4
4
4
4
5
18
45
75
104
126
143
151
159
166
175
187
194
198
198
196
193
187
185
184
183
170
155
148
147
147
148
156
173
194
213
216
215
212
211
211
215
217
219
219
220
220
221
221
220
217
207
197
189
183
179
177
176
173
169
161
157
159
173
195
218
226
227
227
227
227
226
226
226
226
226
226
226
226
226
226
225
225
225
225
225
224
224
224
224
224
223
221
217
211
205
197
193
191
190
191
195
199
202
206
209
212
213
214
215
214
213
211
209
206
204
201
198
196
194
193
192
192
193
194
196
199
201
203
206
209
211
208
199
183
159
121
106
100
100
102
108
114
118
122
125
130
134
139
145
150
157
161
166
170
174
179
183
187
191
194
198
200
201
202
203
203
203
203
204
204
204
204
204
204
204
204
204
205
205
205
206
206
207
207
207
208
208
208
208
209
209
209
209
210
210
210
210
210
210
210
209
209
208
207
206
205
203
201
199
196
192
191
188
180
165
161
168
177
184
182
176
152
106
55
15
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
205
219
225
225
225
222
221
221
222
224
225
225
225
225
225
222
218
215
213
212
219
228
233
235
235
234
230
207
161
88
28
15
7
4
3
3
3
3
5
10
44
81
110
130
144
157
166
174
183
191
198
199
199
197
194
188
185
184
184
183
162
151
147
147
147
148
156
174
197
214
216
213
210
207
208
213
216
217
219
220
220
221
221
221
221
215
205
195
187
180
177
176
174
171
165
157
156
161
176
203
224
226
227
227
227
226
226
226
226
226
226
225
225
225
225
225
225
225
225
225
224
224
224
224
224
222
216
209
202
196
190
188
188
190
192
197
200
204
207
210
212
213
214
214
213
212
210
208
205
203
201
200
199
198
197
197
198
199
201
203
206
208
210
211
212
208
193
166
136
111
102
102
104
108
114
119
122
125
128
133
140
146
152
158
163
170
176
181
187
191
196
199
200
201
202
202
203
203
204
204
204
203
203
202
202
201
201
201
200
200
199
199
199
200
201
202
203
204
205
206
207
207
208
208
208
209
209
209
210
210
210
210
211
211
211
211
211
210
209
209
207
206
204
201
198
193
192
188
180
166
164
172
180
184
182
175
145
97
47
11
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
198
216
224
225
226
222
221
221
221
221
221
221
221
220
219
217
217
217
220
225
232
234
234
234
232
216
166
106
52
21
8
4
3
2
2
3
3
5
15
39
91
117
137
152
166
180
187
193
197
199
200
199
197
193
191
186
185
185
184
180
155
149
147
147
147
148
155
176
200
216
216
210
205
202
203
208
211
214
216
218
219
220
221
221
222
220
215
207
197
187
179
177
175
173
171
161
157
156
160
171
205
219
225
227
227
226
226
226
226
226
226
225
225
225
225
225
225
225
224
224
224
223
222
220
216
207
200
194
190
187
186
186
187
189
191
195
197
199
201
202
204
204
204
204
204
203
203
202
202
202
201
201
201
201
202
204
206
207
208
208
209
209
207
201
186
149
125
111
105
104
106
111
116
121
125
132
137
144
150
157
165
171
177
182
188
194
197
199
200
201
201
202
202
202
201
199
198
196
194
192
188
184
181
177
174
171
170
169
168
168
168
169
171
173
176
180
184
187
191
195
200
202
205
206
208
209
209
209
210
210
210
210
211
212
212
212
212
212
211
211
210
208
207
204
200
194
192
188
180
168
167
176
182
184
182
171
134
84
36
7
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
189
211
221
224
226
224
223
222
221
221
221
221
221
221
221
221
223
226
228
230
233
232
227
215
191
127
80
45
21
9
4
2
2
2
2
2
4
14
36
73
117
139
157
171
182
191
194
197
199
200
199
197
195
193
190
186
186
186
183
176
152
150
149
149
148
149
156
178
203
216
215
208
202
198
198
202
206
209
211
214
216
218
220
220
221
221
219
214
207
196
184
179
176
174
172
166
160
157
157
160
178
201
215
223
226
226
226
225
225
225
225
225
225
225
224
224
224
223
223
222
219
216
212
208
202
196
192
189
187
186
186
186
188
189
191
193
195
196
198
199
200
201
201
202
202
202
202
203
203
203
204
205
206
206
207
207
207
207
207
206
200
187
171
153
136
120
114
111
112
116
121
126
130
134
139
146
152
159
166
174
183
188
191
194
196
199
200
200
199
198
196
192
188
184
179
172
167
162
158
154
151
149
147
145
143
141
140
139
139
139
141
142
144
146
149
154
158
163
169
175
184
189
195
199
203
206
208
209
210
210
210
210
211
211
212
213
213
212
212
212
211
210
208
206
201
195
193
187
179
169
170
179
183
184
181
168
124
73
29
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
175
202
215
221
225
224
224
223
223
222
222
222
223
223
224
225
226
228
229
228
222
205
181
149
111
56
30
14
6
3
2
1
2
2
2
3
8
30
64
104
141
160
174
185
192
196
198
199
200
199
198
196
194
192
190
186
187
187
183
173
152
152
152
151
149
149
157
180
205
216
214
205
198
194
192
195
199
202
205
208
212
215
217
218
220
221
220
218
214
206
193
185
180
176
173
170
164
159
156
155
162
178
196
211
221
225
225
225
225
224
224
223
223
222
221
220
219
218
216
214
210
207
203
199
195
191
189
188
187
186
187
188
189
191
192
195
196
198
199
200
202
202
203
204
205
206
206
206
207
207
208
208
208
208
207
205
202
197
189
180
164
151
138
126
117
113
115
117
120
125
132
138
144
150
157
167
173
179
184
189
194
196
197
198
197
193
190
185
180
175
168
163
158
154
149
144
140
137
134
132
130
129
128
128
127
126
125
125
125
125
125
126
127
129
131
134
138
142
148
154
164
172
180
188
194
201
204
207
209
210
210
210
211
211
212
213
213
213
213
213
212
211
210
207
202
195
193
187
179
171
173
181
184
184
180
163
113
63
23
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
157
188
204
212
220
222
223
223
223
223
223
223
224
224
224
223
221
217
210
199
176
145
108
69
34
11
6
3
1
1
1
1
1
1
1
4
19
54
95
131
161
177
187
194
197
198
199
200
199
199
197
195
194
193
190
188
188
188
183
170
154
155
155
154
150
149
158
183
207
216
213
203
195
190
186
187
191
193
196
200
204
209
212
215
217
220
220
220
219
215
204
194
186
180
175
172
168
163
158
155
153
160
173
190
207
220
222
223
224
223
222
221
220
219
218
216
214
212
210
207
203
200
197
195
193
191
191
190
190
191
192
193
195
197
198
201
202
203
205
206
207
207
208
208
209
209
210
210
209
209
207
206
203
200
196
188
181
171
159
145
129
122
118
116
117
120
124
129
134
139
148
154
162
170
178
187
191
195
196
197
195
193
190
186
181
173
166
159
152
145
138
133
130
127
125
124
123
123
122
122
121
121
121
121
121
121
121
121
121
120
119
119
119
119
120
122
124
127
130
135
145
154
163
173
182
192
198
203
206
209
209
210
210
211
212
213
213
214
214
214
213
212
211
208
202
196
193
186
178
173
175
183
185
183
179
155
102
53
17
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
138
167
185
197
209
215
218
220
220
221
221
221
221
220
218
212
202
183
157
123
72
42
22
10
3
2
1
1
1
1
1
1
1
1
1
8
40
83
125
154
179
190
195
197
197
199
199
199
199
198
197
196
195
194
191
189
190
189
183
168
157
158
159
157
151
150
160
185
209
215
211
201
192
186
180
179
181
182
185
189
194
200
204
208
212
217
218
220
220
219
215
206
196
187
179
174
172
168
163
156
153
152
154
162
179
206
215
221
224
223
223
221
220
219
217
214
212
210
208
206
202
200
198
196
195
195
195
197
199
201
205
207
209
211
212
213
214
214
214
214
213
213
213
212
211
210
210
209
207
205
201
195
186
176
163
146
135
127
122
119
117
117
118
120
124
133
140
148
157
165
176
183
189
193
195
197
197
197
196
193
184
174
163
152
142
133
128
126
124
123
122
122
122
121
121
121
122
122
122
123
123
123
123
123
123
123
122
122
121
121
120
119
118
118
117
117
117
118
120
122
128
136
145
156
166
180
189
196
202
206
209
209
210
211
212
213
213
214
214
214
214
213
212
209
203
197
193
186
178
174
179
185
185
182
177
146
89
43
12
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
114
131
144
154
166
173
177
180
180
178
172
165
154
139
121
92
70
50
34
21
10
6
3
1
1
1
1
1
1
1
1
1
1
1
3
23
78
122
155
176
193
195
196
197
197
199
199
199
199
198
198
198
197
195
192
191
192
191
184
169
163
164
164
160
151
150
164
188
210
215
209
198
189
182
173
169
167
166
167
170
175
181
187
193
199
207
211
215
218
219
219
216
211
203
193
181
176
173
170
167
158
154
151
150
150
158
174
191
206
217
220
221
221
220
219
218
216
215
214
213
212
211
211
212
213
214
214
215
215
216
216
216
215
215
215
214
213
213
212
210
208
205
202
198
193
185
177
169
161
153
141
135
130
127
125
124
124
125
126
128
133
138
144
149
154
159
165
171
178
185
191
194
197
197
196
188
177
164
151
139
129
125
123
122
121
121
121
121
121
122
124
126
128
130
132
136
138
141
143
146
148
148
148
148
146
144
141
139
135
132
127
124
122
120
118
116
115
115
115
115
117
121
127
135
145
161
172
183
192
200
205
207
209
210
211
212
213
214
214
215
214
214
213
210
203
197
193
185
178
176
182
186
185
181
174
130
72
31
7
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
102
110
115
119
123
125
122
120
115
109
100
94
86
77
67
54
44
34
25
17
9
5
3
1
1
1
1
1
1
1
1
1
1
3
7
48
105
144
170
186
195
195
196
196
197
199
199
199
199
199
200
200
198
196
193
193
194
192
186
172
168
168
167
161
150
150
166
191
211
214
208
197
188
180
170
163
159
156
155
156
158
163
169
175
182
192
199
205
211
215
218
217
215
211
206
195
186
179
174
171
166
161
157
153
150
150
155
160
167
179
194
203
210
214
215
216
216
215
215
214
214
213
213
213
213
213
213
213
212
212
210
208
205
202
198
192
187
183
178
173
167
163
158
154
150
146
143
140
137
134
131
130
128
128
127
128
130
132
136
140
146
153
161
169
177
187
191
195
197
198
194
186
175
164
153
142
136
131
127
124
122
121
121
122
123
126
129
134
139
144
152
157
162
167
171
175
178
179
180
181
182
182
181
180
179
176
173
169
164
159
151
145
138
131
125
120
117
114
113
113
113
115
119
124
133
147
159
171
182
192
201
204
207
208
210
212
213
214
215
215
215
214
213
210
203
198
191
184
178
178
185
186
184
179
170
115
59
23
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
94
97
98
97
95
92
88
84
80
75
69
65
61
56
51
47
42
35
28
21
12
6
3
1
1
1
1
1
1
1
1
1
1
5
13
76
130
162
180
192
195
195
195
196
197
199
199
199
199
200
201
201
199
197
194
195
195
194
189
177
172
172
169
161
150
150
169
193
211
214
208
196
187
178
168
159
154
148
145
144
144
147
151
157
163
174
181
190
198
205
213
215
216
215
213
206
198
190
182
176
171
168
164
159
155
151
149
148
149
154
165
171
178
183
187
193
195
197
198
199
200
199
199
198
196
194
192
190
187
184
180
176
172
169
165
160
157
153
150
146
142
140
137
135
133
132
131
130
130
130
131
132
133
135
137
142
148
154
161
167
176
182
187
192
196
197
193
187
179
171
161
152
144
135
128
123
121
120
120
121
124
128
132
138
144
152
159
165
171
176
182
186
190
193
196
198
199
200
200
201
201
201
200
200
199
197
195
192
188
184
177
169
161
152
142
131
124
118
114
112
111
111
113
117
123
135
147
159
172
184
195
200
204
207
209
211
213
214
215
215
215
215
213
209
203
198
190
183
179
180
187
186
183
176
163
99
47
17
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
89
89
89
87
83
75
71
68
66
65
64
64
63
62
61
58
54
47
39
30
16
8
3
1
1
1
1
1
1
1
1
1
2
8
22
104
151
175
187
195
195
194
194
195
198
200
199
199
200
201
203
202
200
197
196
197
197
196
191
181
176
175
169
160
149
150
172
195
212
214
208
196
186
178
168
157
151
144
138
135
132
133
136
139
144
153
161
169
179
189
201
208
212
214
214
213
209
203
195
186
178
174
170
167
163
157
153
150
147
145
145
146
148
151
156
163
167
170
172
173
174
174
173
171
169
166
163
160
156
152
147
144
141
139
137
135
134
133
133
132
132
132
132
132
133
133
134
135
136
137
141
144
148
153
159
167
174
182
189
196
201
201
199
195
191
181
170
158
145
133
124
120
118
118
118
120
122
125
129
134
142
149
158
166
174
184
191
196
199
202
205
206
207
207
208
208
209
209
209
209
209
209
209
209
209
208
207
206
204
202
197
191
184
175
164
149
137
127
119
114
110
109
110
112
115
125
135
148
161
174
188
196
201
205
207
210
212
214
215
215
215
215
213
209
203
197
188
182
180
182
188
186
182
173
154
82
36
12
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
85
86
86
85
83
74
70
67
65
65
69
73
77
80
82
78
72
64
54
41
22
11
4
1
1
1
1
1
1
1
1
1
3
12
36
129
164
182
190
196
194
192
193
195
198
200
199
199
200
202
204
203
200
198
198
199
199
197
193
185
179
176
168
158
149
150
174
197
212
213
208
196
187
178
168
157
150
142
135
131
126
124
124
125
127
132
138
146
155
165
182
194
204
212
214
215
214
213
210
204
190
181
175
171
168
166
163
160
157
152
147
145
143
142
142
141
142
142
142
142
142
142
141
141
140
139
138
137
136
136
136
135
135
135
134
134
134
134
134
134
135
135
136
137
138
141
144
147
151
155
163
171
179
187
195
203
207
210
212
211
201
185
169
153
140
128
123
119
116
115
115
115
116
117
119
125
133
143
155
167
182
191
197
201
204
206
207
208
208
209
209
209
209
209
210
210
210
210
210
210
210
210
210
210
210
210
210
210
210
210
208
206
201
195
186
171
157
142
129
119
111
108
108
108
110
116
126
137
150
164
181
190
198
202
206
209
212
214
215
215
215
215
213
208
203
195
187
182
182
184
189
185
180
168
142
66
26
7
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
83
84
85
85
84
77
73
71
71
74
94
102
106
106
105
95
86
74
60
45
25
12
5
1
1
1
1
1
1
1
1
1
4
19
55
150
175
187
192
196
193
191
192
194
198
198
198
199
201
204
205
203
201
201
201
202
202
199
194
187
178
173
164
155
148
150
176
198
212
213
209
200
190
180
172
160
152
144
137
131
126
122
120
119
118
119
120
122
126
131
143
155
170
184
199
210
213
214
214
214
212
206
198
188
179
172
169
166
165
163
160
158
156
153
151
149
147
146
145
144
143
142
142
141
140
140
140
140
140
140
140
140
141
142
143
143
144
145
147
149
152
154
157
161
167
175
182
189
195
201
208
211
213
214
213
199
180
162
146
136
129
124
121
118
116
114
113
113
113
114
117
124
134
146
161
180
190
197
202
205
207
207
208
208
209
209
209
209
209
210
210
210
210
210
210
210
210
210
210
210
210
210
210
210
211
211
211
211
211
211
211
210
210
208
204
194
182
167
150
134
117
110
107
106
106
109
116
126
138
151
170
183
192
199
204
208
211
213
215
216
216
215
212
207
202
192
185
183
183
187
189
184
177
159
121
45
16
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
83
85
86
87
86
82
79
78
81
91
112
116
117
116
111
99
87
72
57
40
23
11
4
1
1
1
1
1
1
1
1
1
5
23
64
157
177
187
192
196
193
191
191
192
195
196
197
200
203
206
206
204
203
203
204
204
202
198
191
182
172
167
160
153
148
150
175
197
211
213
210
203
196
188
179
167
158
150
143
137
130
126
123
121
119
118
118
118
119
121
125
130
138
149
163
183
195
205
211
214
214
212
209
205
200
191
184
177
172
168
164
162
160
159
157
155
153
152
151
150
149
149
149
149
148
148
148
148
148
148
149
149
150
151
153
156
159
163
168
173
180
185
190
195
199
203
205
207
208
206
188
171
159
152
149
144
139
133
128
123
119
115
112
111
111
111
113
119
128
139
157
169
179
187
193
200
203
205
207
208
208
209
209
209
210
210
211
211
211
212
212
212
213
213
213
213
213
213
213
212
212
212
212
211
211
211
211
211
211
211
211
211
210
210
208
203
195
182
167
149
126
115
108
105
104
106
111
119
130
142
163
177
188
196
202
207
211
213
215
216
216
215
211
206
201
190
185
183
185
189
188
182
172
148
101
31
11
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
83
86
89
90
90
87
85
85
91
107
124
126
126
122
114
99
83
66
50
35
18
9
3
1
1
1
1
1
1
1
1
1
5
24
68
158
177
187
192
196
194
192
191
191
193
196
198
202
206
207
207
205
205
206
206
204
199
191
181
170
164
161
156
151
147
149
173
194
209
211
210
206
201
195
189
178
170
162
155
148
139
134
130
126
123
120
118
117
117
117
117
119
122
127
135
150
163
177
190
201
209
212
213
213
211
205
200
195
190
185
178
174
171
169
166
164
162
161
160
159
158
157
157
156
157
157
158
159
161
162
166
169
172
175
178
183
186
190
193
197
201
204
205
202
193
173
167
165
164
163
153
142
135
129
126
123
120
116
113
110
109
107
108
112
118
131
142
154
164
175
188
195
201
204
206
208
208
209
209
210
210
211
211
212
213
213
214
214
214
215
215
215
215
215
216
216
216
215
215
215
215
214
214
213
213
212
212
212
211
211
211
211
211
211
210
208
203
194
181
164
137
121
111
105
103
104
108
114
123
135
155
171
184
194
201
207
210
213
215
216
216
215
210
205
199
188
185
184
186
190
186
180
165
135
82
20
7
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
83
89
93
95
96
93
92
94
103
122
132
133
131
124
113
93
74
56
41
28
14
6
2
1
1
1
1
1
1
1
1
1
5
23
66
156
175
185
191
196
196
193
192
192
194
197
201
205
208
208
208
208
208
207
206
199
188
175
163
154
154
155
154
150
146
147
168
190
206
209
209
208
205
202
199
191
185
178
171
165
154
148
142
137
132
126
123
120
118
117
116
116
116
117
118
123
132
144
159
174
191
200
206
210
212
213
213
211
208
203
197
192
188
184
182
178
177
175
174
173
172
171
171
172
172
174
176
178
180
183
187
192
196
200
204
207
206
203
199
194
189
186
183
176
162
132
125
122
122
122
124
124
123
121
117
113
109
106
103
103
108
114
122
133
145
165
180
191
199
203
206
207
208
208
209
210
210
211
211
212
213
214
214
215
216
216
217
217
217
217
218
218
218
218
218
218
218
217
217
217
217
217
216
216
215
214
214
213
212
212
211
211
211
211
210
210
208
203
193
177
149
129
115
106
102
102
105
110
118
128
149
166
181
192
200
206
210
213
215
216
217
214
209
203
196
186
185
185
188
191
184
177
156
119
62
12
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
84
93
99
102
102
99
98
105
117
134
139
138
132
121
107
80
60
44
31
18
10
4
1
1
1
1
1
1
1
1
1
1
4
20
58
150
171
182
189
197
198
197
195
195
196
202
206
209
210
210
210
210
209
207
203
185
165
149
138
132
144
150
151
149
145
145
162
184
203
207
208
208
207
206
206
203
201
197
192
186
176
168
160
153
146
138
132
128
124
120
117
116
115
115
115
115
116
118
123
132
152
169
184
197
206
212
214
214
214
214
214
213
211
208
204
200
198
196
195
195
197
198
200
201
202
205
207
209
210
211
212
213
213
212
212
208
198
181
160
138
117
110
108
111
119
129
136
138
138
133
126
118
109
100
96
93
94
95
99
106
127
149
169
186
197
203
205
207
207
208
208
209
209
210
211
212
213
214
215
216
217
217
217
218
218
218
218
218
218
218
218
218
218
218
218
218
218
218
218
218
218
218
218
218
217
217
216
215
214
213
212
211
211
211
211
210
210
207
201
189
162
139
121
108
102
100
103
107
113
122
143
163
179
191
199
206
211
214
215
216
217
213
207
201
193
186
185
187
189
191
182
173
145
101
43
7
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
85
99
106
109
109
108
110
120
133
143
144
138
128
111
87
55
42
29
19
10
4
2
1
1
1
1
1
1
1
1
1
1
3
14
43
133
160
173
181
192
199
200
201
202
204
209
210
211
211
211
211
209
205
194
176
141
120
108
103
103
128
142
148
148
144
142
150
172
193
201
204
206
207
207
207
207
207
207
207
206
202
197
190
183
175
165
157
150
143
136
130
125
121
119
116
115
114
114
114
114
117
120
127
136
149
167
180
192
201
208
213
216
218
220
221
221
220
219
218
217
215
215
215
215
215
214
213
212
209
205
193
175
156
137
122
106
105
108
116
129
144
148
149
149
145
137
124
111
99
92
90
89
89
90
93
102
118
139
162
183
197
202
205
206
207
208
208
209
209
210
211
213
214
215
216
217
217
217
218
218
218
218
218
218
218
219
219
219
219
219
219
219
219
219
219
219
219
219
219
219
219
219
219
218
218
218
218
217
216
215
214
212
212
211
211
210
210
210
207
200
176
151
130
113
102
99
101
104
108
116
139
160
177
190
199
207
211
214
216
217
216
211
205
197
190
186
186
189
190
189
178
163
124
73
23
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
86
102
110
113
114
115
121
131
141
147
145
134
116
94
72
53
39
25
15
8
3
2
1
1
1
1
1
1
1
1
1
1
2
9
29
114
148
163
169
177
196
202
204
206
209
211
212
212
212
211
209
202
187
166
140
116
105
98
95
95
110
132
142
145
144
140
142
159
179
191
196
201
204
205
205
207
207
208
208
208
207
205
202
198
192
183
176
169
161
154
145
140
135
130
127
122
119
117
115
114
114
115
117
119
123
129
135
142
150
159
169
176
183
188
193
196
199
200
202
202
201
198
192
184
174
160
152
144
137
130
125
124
127
131
136
142
144
145
146
149
149
141
131
120
109
101
97
93
90
89
89
94
102
114
131
158
172
184
193
200
204
206
207
208
208
209
210
212
213
214
215
216
216
217
217
218
218
218
218
218
219
219
219
220
221
222
222
223
223
224
224
224
224
224
224
223
222
221
221
220
220
219
219
219
219
219
218
218
218
217
215
214
213
212
211
210
210
210
208
205
185
160
137
118
104
99
101
102
106
113
137
159
177
191
200
208
212
215
216
217
215
209
202
195
188
186
187
190
190
185
174
150
104
53
14
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
87
105
114
117
118
122
131
141
147
150
143
126
106
87
71
57
44
30
17
9
3
2
1
1
1
1
1
1
1
1
1
1
1
5
16
89
134
152
156
160
180
196
203
207
210
211
212
212
211
209
198
182
160
138
121
106
99
95
92
91
98
117
133
143
144
138
137
147
162
176
182
189
194
197
198
202
204
206
207
208
208
209
208
206
203
196
191
184
176
169
159
153
147
142
139
134
130
126
123
120
117
116
114
114
113
114
116
119
123
128
134
139
143
146
149
151
153
154
154
152
149
146
143
138
132
127
127
128
128
127
129
133
139
146
152
157
157
154
148
139
125
115
107
98
91
87
87
88
91
96
107
122
138
155
171
190
198
202
205
206
207
208
209
210
211
213
214
215
216
216
217
217
218
218
218
218
218
219
220
220
221
222
223
224
225
227
227
228
229
229
230
229
229
229
229
228
227
226
225
224
223
222
221
220
219
219
219
219
219
218
217
216
214
212
211
210
210
210
209
207
192
168
144
122
106
99
100
101
104
110
137
160
179
192
201
209
213
215
216
216
213
206
199
192
187
187
189
191
189
181
169
133
83
36
7
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
88
109
118
121
122
130
141
148
151
151
138
118
102
90
83
73
60
45
31
18
7
3
2
1
1
1
1
1
1
1
1
1
1
2
7
59
115
140
146
145
157
180
194
202
207
209
209
208
205
199
178
155
135
120
114
108
104
101
98
93
93
104
122
138
143
137
133
135
143
156
163
170
176
180
182
189
193
196
200
203
205
207
209
209
208
205
201
196
190
182
173
166
159
153
149
145
142
138
135
131
126
123
120
118
117
115
114
114
114
114
114
114
115
115
115
114
114
114
113
112
111
111
112
113
115
123
132
140
148
153
159
161
163
163
162
156
149
140
129
114
96
90
87
86
86
88
91
96
105
117
140
160
177
192
200
205
206
207
208
208
209
210
212
213
214
216
217
217
217
217
218
218
218
218
219
219
220
221
222
223
225
226
227
229
230
231
232
232
233
233
233
233
233
233
233
232
231
231
230
228
227
225
224
222
221
220
219
219
219
219
218
217
215
213
212
211
210
210
210
209
197
175
150
127
107
99
99
100
103
109
138
162
180
194
203
210
214
216
216
216
211
203
196
190
187
187
190
191
187
177
160
112
62
22
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
90
112
121
124
126
138
148
153
153
150
130
113
106
105
106
105
89
76
60
39
16
6
2
2
1
1
1
1
1
1
1
1
1
1
3
25
92
127
139
137
132
149
172
192
198
204
204
200
192
178
148
130
122
118
116
117
121
121
114
100
93
95
109
126
139
140
132
128
128
133
140
144
148
153
154
160
167
174
181
189
196
202
206
209
210
211
210
208
203
196
187
178
169
161
155
151
149
147
146
144
141
138
135
132
130
126
123
120
118
116
115
114
114
113
113
114
115
117
121
126
135
141
145
148
151
155
159
161
163
165
166
166
165
163
159
143
124
108
96
89
86
85
85
86
87
95
102
116
133
154
184
195
202
205
206
207
207
208
209
210
213
215
216
217
217
217
217
218
218
218
218
218
219
220
221
222
223
224
225
226
228
229
230
230
231
232
233
233
234
234
234
234
234
234
233
233
233
232
232
231
230
229
228
226
224
221
220
220
219
219
219
218
217
215
212
211
210
210
210
209
201
180
156
131
109
99
99
100
103
109
141
165
183
196
204
212
215
216
216
216
208
200
193
189
187
188
192
190
184
173
146
89
42
11
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
93
116
126
128
131
145
153
156
154
146
124
120
121
124
125
119
110
103
92
73
49
27
12
3
1
1
1
1
1
1
1
1
1
1
1
4
38
90
133
139
119
117
124
137
152
159
162
159
151
136
126
124
123
125
134
147
150
152
150
144
114
100
98
108
132
140
137
130
122
121
119
118
118
118
117
117
119
122
127
134
149
164
180
194
204
211
214
216
216
213
208
202
193
183
172
161
156
152
150
149
148
147
146
145
145
144
144
143
143
143
143
143
143
144
144
145
147
149
151
153
155
155
157
159
163
167
170
173
174
174
170
165
155
142
125
105
97
91
88
86
85
87
89
94
103
118
139
161
182
197
204
206
207
207
208
209
210
212
214
216
217
217
217
217
217
218
218
218
218
219
220
221
222
223
224
224
225
226
226
227
228
229
230
231
232
232
233
233
233
233
233
232
232
232
232
232
232
232
232
231
231
230
229
229
228
225
223
221
220
220
219
219
218
216
214
211
210
210
210
210
204
186
161
135
112
100
99
99
103
112
148
171
187
199
207
213
216
217
216
214
203
195
191
188
188
191
192
185
175
166
115
58
22
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
93
118
129
131
133
148
155
157
153
142
128
129
132
136
137
131
123
115
105
91
72
52
32
15
3
1
1
1
1
1
1
1
1
1
1
2
14
51
97
135
130
117
113
117
126
138
140
138
134
129
126
126
130
137
144
150
152
154
154
154
142
122
106
101
112
137
138
132
124
120
117
114
113
112
112
110
110
110
110
111
114
122
134
149
166
188
200
207
212
214
213
211
207
201
194
179
171
164
158
154
152
150
149
148
148
147
147
146
146
146
146
147
147
148
149
150
152
154
157
159
163
166
169
172
174
176
177
177
175
171
161
149
137
124
112
99
93
89
87
86
88
93
100
110
124
152
173
188
198
204
206
207
208
208
210
212
214
215
216
217
217
217
217
217
218
218
218
219
220
221
222
222
223
223
224
224
225
225
225
226
227
228
229
229
230
230
230
230
229
229
229
229
228
228
229
229
229
230
230
230
230
230
230
229
228
227
225
223
221
220
220
219
219
217
214
212
211
210
210
210
205
188
164
137
113
100
99
99
104
117
155
176
191
202
209
214
216
216
215
210
199
193
189
188
189
192
192
182
168
153
85
38
12
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
93
120
131
133
135
149
156
158
153
141
133
136
140
144
144
141
135
128
118
105
85
70
52
32
12
1
1
1
1
1
1
1
1
1
1
1
3
22
56
105
134
125
115
110
112
120
126
128
129
128
128
132
137
143
148
150
152
154
156
157
155
142
123
106
101
122
134
135
129
121
117
114
112
111
110
108
106
105
103
102
100
101
105
112
122
145
167
184
198
207
213
214
213
211
207
197
188
179
171
165
160
157
156
154
153
152
151
151
151
151
151
152
153
154
155
158
160
163
165
168
171
174
177
179
180
181
179
176
172
165
151
139
127
115
104
94
90
88
88
89
95
103
116
132
152
180
194
201
205
206
207
208
210
211
213
215
216
217
217
217
217
217
217
218
218
219
220
220
221
222
223
223
223
223
223
223
223
223
224
225
226
227
228
228
228
228
228
228
227
227
227
227
227
227
227
227
227
228
228
229
229
229
229
229
228
228
226
225
223
221
220
220
219
218
215
212
211
210
210
210
206
189
165
138
114
101
99
100
107
123
163
182
195
204
211
216
216
216
213
207
195
191
189
189
190
193
188
177
159
132
58
23
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
93
121
132
135
137
149
156
158
153
141
137
142
147
149
150
149
145
139
130
117
95
81
67
50
27
4
2
1
1
1
1
1
1
1
1
1
1
4
20
58
117
128
123
114
109
108
117
123
128
130
131
137
142
145
147
149
151
153
155
157
158
156
142
121
100
103
124
135
136
126
119
116
113
112
110
109
108
106
104
102
97
94
91
89
88
101
125
149
171
189
207
212
213
214
214
209
203
195
187
178
170
166
164
161
160
158
157
156
156
156
156
157
158
160
162
166
168
171
173
176
179
180
182
183
183
182
179
174
167
158
143
132
120
109
99
90
89
89
90
94
105
119
137
158
180
199
204
206
207
207
209
210
212
214
216
217
217
217
217
217
217
217
218
218
219
220
221
221
222
222
222
222
222
221
221
221
221
222
223
224
226
226
227
227
227
227
227
227
227
227
226
226
226
226
226
226
226
226
226
227
228
228
229
229
228
228
227
226
224
222
220
220
219
218
215
212
211
210
210
210
206
190
165
138
115
101
99
101
110
133
171
187
199
207
212
216
216
215
210
202
192
190
189
190
191
192
181
169
146
106
34
12
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
91
121
133
137
138
149
156
157
153
142
141
148
152
154
154
153
152
148
141
129
104
88
75
63
50
11
4
1
1
1
1
1
1
1
1
1
1
1
2
7
65
114
131
128
117
106
107
115
125
132
137
140
142
144
145
146
148
150
154
157
159
158
155
142
111
93
107
127
140
137
123
120
117
114
113
113
112
112
110
108
100
95
90
85
81
77
85
105
130
157
191
205
211
213
215
213
211
207
201
192
182
176
171
169
167
164
163
162
161
161
161
162
163
165
167
169
171
174
177
179
183
185
186
187
186
183
178
172
163
153
138
125
112
101
94
90
90
92
96
102
119
140
162
183
200
205
206
207
208
209
211
214
216
217
217
217
217
217
217
217
217
218
219
219
220
221
221
221
222
221
221
220
219
219
219
220
221
222
223
225
226
226
227
227
227
227
227
227
227
227
227
227
226
226
226
226
226
226
226
226
226
227
227
228
228
228
227
226
225
223
221
220
220
218
215
212
211
210
210
210
206
189
165
138
115
101
100
103
116
144
179
193
203
209
215
216
216
213
207
197
190
189
189
191
193
191
174
157
129
74
16
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
87
118
133
137
139
148
156
157
153
146
146
152
155
155
155
154
154
153
152
150
127
101
82
68
61
35
12
2
1
1
1
1
1
1
1
1
1
1
1
1
4
34
81
121
133
127
115
111
113
118
127
134
138
139
139
139
141
145
151
157
160
160
159
156
149
99
91
100
119
141
139
130
125
122
120
122
125
127
129
129
124
117
106
93
82
74
69
67
73
91
137
167
190
204
212
215
213
213
211
207
198
189
182
176
172
169
167
165
164
163
164
165
166
169
171
176
179
182
184
186
188
188
188
188
187
182
176
169
159
148
131
118
107
98
93
91
93
97
105
118
147
170
189
202
206
207
207
209
210
212
216
216
217
217
217
217
217
217
217
217
218
219
219
220
220
220
220
220
219
218
217
218
218
219
219
220
222
223
225
225
226
226
226
227
227
227
227
227
227
227
227
227
227
227
227
227
226
226
226
226
226
226
226
227
227
227
227
226
225
224
222
221
220
218
215
212
211
210
210
210
206
187
161
135
114
101
102
109
128
162
189
199
207
213
216
216
215
208
200
192
189
189
190
192
192
182
165
136
94
37
5
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
84
113
130
137
140
147
155
157
154
148
149
154
155
155
154
154
154
154
155
154
146
120
93
71
62
47
21
7
1
1
1
1
1
1
1
1
1
1
1
1
1
10
28
56
94
119
122
123
123
123
124
126
128
128
128
130
136
142
148
155
161
161
160
159
156
132
102
91
97
114
139
137
134
130
127
128
130
132
133
133
132
131
126
117
103
81
71
64
62
63
83
114
146
177
202
213
213
213
212
210
206
202
195
188
181
176
173
171
169
168
168
168
170
172
174
179
181
184
186
188
189
189
190
189
187
182
175
167
157
145
127
114
104
97
93
93
97
105
119
138
168
187
199
205
207
208
209
211
213
215
216
217
217
217
217
217
217
217
217
218
219
219
219
220
220
219
218
217
217
217
217
217
218
219
220
222
224
225
226
226
226
226
227
227
227
227
227
227
227
227
227
227
227
227
227
227
227
227
226
226
226
226
226
226
227
227
226
226
225
224
222
222
220
218
215
211
211
210
210
210
204
184
158
132
112
102
103
118
142
175
195
203
210
215
216
216
211
204
196
191
190
190
191
192
191
169
152
113
64
19
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
82
107
126
137
140
147
155
157
154
149
152
155
155
155
154
154
154
155
157
158
156
138
108
77
60
52
33
14
2
1
1
1
1
1
1
1
1
1
1
1
1
1
5
18
42
70
94
109
118
123
128
130
131
131
132
134
139
144
149
154
160
161
162
161
159
150
123
100
87
92
117
132
137
137
134
133
133
134
135
135
136
136
136
132
124
103
84
69
58
52
54
71
98
133
171
204
210
213
213
212
210
208
203
198
191
183
179
176
174
172
170
171
171
173
176
180
184
186
188
190
190
191
190
190
188
181
174
165
154
142
123
111
102
96
93
95
103
116
134
156
184
198
204
207
208
209
211
213
215
216
217
217
217
217
217
217
217
217
218
218
219
219
219
219
218
217
216
216
216
216
217
218
219
221
223
225
225
226
226
226
226
226
226
226
226
226
226
226
226
227
227
227
227
227
227
227
227
227
227
226
226
226
226
226
226
226
226
226
225
224
223
222
220
217
214
211
211
210
210
209
201
179
154
129
109
104
107
129
159
185
199
207
213
216
216
214
207
199
193
190
190
191
192
190
184
160
133
87
39
9
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
81
102
121
135
141
147
154
157
155
151
154
155
155
154
153
153
154
156
159
161
161
153
125
89
58
51
42
22
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
19
48
70
87
101
117
125
130
135
139
143
147
150
153
155
159
161
162
162
160
158
145
120
94
80
89
113
129
138
140
137
137
136
136
136
136
137
139
139
139
128
106
83
64
51
43
44
58
85
124
180
199
210
214
214
212
210
208
205
200
191
186
181
178
175
173
172
173
174
177
182
185
188
191
191
191
191
191
190
188
181
173
163
152
139
120
109
100
96
94
100
111
128
149
172
196
204
207
208
209
210
213
215
216
217
217
217
217
217
217
217
217
218
218
218
219
218
218
217
216
215
215
215
215
216
218
219
221
223
225
226
226
226
226
226
226
226
226
226
225
225
225
225
226
226
226
226
226
227
227
227
227
227
227
227
226
226
226
226
226
226
226
225
225
223
223
222
219
216
213
211
210
210
210
209
197
173
148
126
108
106
115
144
175
193
203
211
215
216
216
211
201
195
191
190
190
192
191
186
173
151
107
59
20
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
80
96
115
132
142
147
154
157
155
152
155
156
155
153
153
153
154
158
162
165
166
162
143
108
57
43
43
26
7
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
7
18
39
72
91
109
124
138
151
155
157
157
157
159
160
162
162
162
160
157
144
120
82
72
79
103
128
141
142
140
139
137
136
136
138
139
141
142
142
133
110
82
54
41
37
37
44
65
133
177
202
213
215
214
211
210
208
206
199
192
187
182
178
175
174
175
176
178
183
187
190
191
192
192
192
191
190
187
180
172
162
150
136
117
106
99
96
96
105
122
142
164
186
205
207
208
209
210
212
214
216
216
217
217
217
217
217
217
217
217
218
218
218
218
217
216
215
215
214
214
215
215
217
220
223
225
226
226
226
226
226
226
225
225
224
224
224
224
224
224
224
224
225
225
225
226
226
226
227
227
227
227
227
226
226
226
225
225
225
225
225
224
223
223
222
219
215
212
210
210
210
210
209
192
167
142
120
108
108
131
162
188
198
208
214
216
216
215
205
196
192
190
190
192
192
190
181
161
135
77
33
7
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
81
91
109
129
143
149
155
157
156
154
155
155
154
153
153
153
155
161
168
174
175
171
161
135
85
37
39
29
14
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
3
7
15
29
48
72
106
127
141
151
155
157
159
160
161
162
161
160
158
150
130
77
67
66
80
113
141
142
143
142
140
138
139
140
142
144
145
143
135
117
85
44
36
32
30
31
52
103
156
197
215
216
214
212
210
209
206
202
196
191
185
180
177
176
177
178
184
187
190
192
192
193
192
192
190
187
180
171
160
147
133
114
104
98
97
100
117
137
158
180
199
207
208
209
210
211
214
216
216
217
217
217
217
217
217
217
217
217
218
217
217
216
215
214
214
213
214
214
216
219
222
225
226
226
226
226
226
225
224
224
223
223
223
223
223
223
223
222
222
222
222
222
223
223
224
225
226
227
227
227
227
227
226
225
225
225
225
225
224
224
223
223
220
217
213
211
210
210
210
208
205
181
159
133
113
109
118
159
184
198
203
214
216
216
214
210
196
192
191
191
191
192
190
179
164
151
89
38
11
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
81
89
107
128
144
150
155
157
157
155
156
155
154
153
153
153
155
162
169
177
179
177
169
148
110
34
27
22
15
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
5
10
18
31
59
85
108
127
140
149
153
156
158
160
161
160
159
156
149
113
79
62
59
71
115
135
143
144
143
142
142
143
144
146
147
146
140
128
107
63
41
30
27
26
33
55
98
149
196
216
216
215
213
210
207
204
200
195
189
183
180
178
178
179
184
188
191
192
193
193
193
192
190
187
179
170
159
145
130
111
102
98
99
106
126
147
169
189
203
208
209
210
211
213
215
216
216
217
217
217
217
217
217
217
217
217
217
217
216
215
214
213
213
213
214
216
219
222
225
226
226
226
226
225
224
223
223
223
223
223
223
223
222
222
221
221
220
220
220
221
221
222
223
224
225
226
227
227
227
227
226
225
225
224
224
224
224
223
223
222
219
215
212
210
210
210
209
206
199
175
145
124
113
112
146
177
193
202
209
215
216
215
211
202
193
191
191
191
192
191
183
170
151
127
52
19
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
81
87
106
129
145
151
156
157
157
155
156
155
154
153
153
154
155
161
169
179
182
180
175
160
129
38
22
17
14
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
5
10
25
46
68
91
112
129
138
145
150
154
157
158
159
158
157
139
105
74
51
45
76
112
133
144
145
145
145
146
147
149
150
149
145
136
122
81
49
31
23
22
25
32
57
97
152
205
213
216
215
212
210
206
203
199
194
187
183
181
181
181
184
189
191
192
193
193
193
192
190
187
179
169
157
144
128
109
101
99
102
111
135
157
178
195
206
209
209
210
212
214
216
216
216
216
216
216
217
217
217
217
217
217
217
216
215
214
213
212
213
213
216
219
222
224
226
226
226
225
224
223
222
222
223
223
223
223
223
222
221
220
220
220
220
220
220
220
220
221
222
223
225
226
227
227
227
226
225
225
224
224
224
224
223
223
222
220
217
213
211
210
210
209
208
203
194
161
133
119
117
126
171
190
200
206
213
216
216
212
205
196
191
191
191
191
192
187
173
158
134
91
25
8
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
81
86
106
130
146
152
156
158
157
155
156
154
154
154
154
154
155
160
167
178
183
182
180
169
144
49
22
13
10
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
6
16
32
52
75
99
114
126
135
142
149
153
155
157
158
154
132
97
60
34
39
77
111
136
145
147
148
149
150
152
153
152
149
142
131
98
61
35
20
17
20
22
31
54
98
177
203
214
217
215
212
209
206
203
199
192
187
184
183
183
184
189
191
193
193
193
193
192
190
187
179
169
156
142
126
108
101
100
106
117
143
165
185
200
208
209
210
211
213
215
216
216
216
216
216
216
216
217
217
217
217
216
216
215
214
212
212
212
213
214
218
221
224
225
226
225
224
223
222
221
221
222
223
223
223
223
222
221
220
220
220
220
220
220
220
220
220
221
221
223
225
226
227
227
227
226
225
224
224
224
223
223
223
222
221
218
214
212
210
210
209
209
206
199
184
143
125
119
126
149
189
198
205
210
215
216
213
206
198
192
191
191
191
191
190
178
162
142
108
52
8
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
82
87
108
132
147
153
157
158
157
156
156
155
155
155
155
155
155
157
162
173
181
182
181
174
159
69
25
8
5
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
7
16
31
58
78
94
108
120
133
142
149
154
156
156
151
126
86
35
18
34
73
116
143
147
149
151
152
154
156
155
153
148
140
114
78
44
19
12
13
18
23
31
48
130
182
208
217
216
215
212
209
205
201
196
191
187
186
186
187
190
191
193
193
193
193
192
190
187
178
168
155
140
124
106
101
102
110
124
150
172
191
204
209
210
211
212
214
215
216
216
216
216
216
216
216
216
216
216
216
216
215
214
213
212
212
212
213
216
220
223
225
226
226
224
223
221
221
220
221
222
223
224
224
223
221
220
220
220
220
220
220
220
220
220
220
221
222
223
225
226
227
227
227
226
225
224
223
223
223
222
222
221
220
216
212
210
210
209
209
208
204
192
167
125
121
125
143
179
199
204
209
214
216
215
208
200
193
191
191
191
191
190
185
164
152
118
70
19
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
83
90
113
136
147
154
157
158
157
156
156
155
156
157
157
155
155
155
157
162
178
182
182
178
165
86
31
8
3
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
4
12
23
38
54
72
95
114
130
143
151
155
154
148
124
71
14
10
22
54
106
142
147
151
153
155
156
155
153
151
147
126
99
64
32
11
7
9
14
21
28
56
122
175
208
217
216
215
213
210
206
201
198
194
191
190
190
191
192
193
193
193
193
192
190
187
178
167
153
138
121
105
102
105
115
131
158
179
196
206
210
211
211
213
214
215
216
216
216
216
216
216
216
216
216
216
216
215
214
213
212
211
212
213
215
218
222
224
225
225
224
222
220
219
219
220
222
223
224
224
224
222
221
220
220
220
220
220
220
220
220
220
220
221
222
224
226
226
227
227
226
225
223
223
222
222
222
221
221
220
216
212
210
209
209
209
208
205
191
167
134
125
127
150
179
198
205
211
214
215
215
208
198
193
192
191
191
191
189
181
167
153
119
69
23
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
84
95
117
139
148
155
158
158
157
156
156
156
157
158
159
157
156
155
155
158
172
180
182
179
171
98
37
10
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
4
8
14
23
36
60
83
106
127
141
151
153
150
134
97
22
9
9
23
52
108
133
145
151
154
155
154
152
150
146
129
103
71
38
13
6
6
9
13
22
40
79
136
187
212
216
216
215
213
210
204
201
198
195
193
193
193
193
194
194
194
193
192
190
187
178
166
153
137
120
105
103
108
119
135
162
183
198
208
210
211
212
213
214
215
216
216
216
216
216
216
216
216
216
216
216
215
214
213
211
211
212
213
215
219
223
224
224
224
223
220
219
218
219
220
223
224
224
224
224
222
221
221
220
220
220
220
220
220
220
220
221
222
224
225
226
226
226
226
225
223
222
222
221
221
221
221
219
216
212
210
209
209
208
208
206
193
169
146
132
129
151
174
194
204
210
213
215
214
211
199
194
192
192
191
191
188
180
169
159
128
76
35
8
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
85
99
122
142
149
157
159
159
157
156
156
157
158
159
159
159
157
155
155
156
166
177
182
180
174
106
42
12
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
4
8
14
30
51
77
103
127
144
148
148
137
109
28
10
3
7
19
61
97
124
141
149
152
152
150
146
142
127
105
75
42
14
6
5
6
8
13
27
52
98
151
199
214
216
215
214
213
208
204
201
199
197
195
195
195
194
194
194
194
193
190
187
177
166
152
136
119
105
104
110
122
138
165
185
200
208
211
211
212
213
214
215
216
216
216
216
216
216
216
216
216
216
215
214
213
212
211
211
212
213
216
219
223
223
223
223
221
218
217
217
218
220
224
224
224
224
224
223
222
222
221
220
220
220
220
220
221
222
223
224
225
226
226
226
225
224
223
221
221
221
221
221
220
218
215
212
210
208
208
208
208
206
194
172
152
138
133
148
174
192
203
208
213
214
213
210
203
194
192
192
192
192
189
181
171
158
141
86
40
13
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
87
104
126
144
150
158
159
159
157
156
156
157
159
160
160
159
159
157
155
155
161
174
181
181
175
111
46
14
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
3
10
24
45
71
100
126
135
137
129
107
31
10
2
2
3
20
54
87
116
136
143
145
144
141
137
122
104
75
44
14
5
5
4
5
6
17
34
65
112
175
210
214
216
215
214
212
207
205
202
200
197
197
196
195
195
194
194
193
191
187
178
166
151
135
117
106
106
112
124
141
167
187
200
209
211
212
212
213
214
215
215
216
216
216
216
216
216
216
216
216
215
214
213
212
211
211
212
213
216
219
222
222
222
221
219
216
216
216
217
220
224
225
225
225
225
224
223
223
222
222
221
221
221
222
222
224
225
225
226
226
226
225
224
222
221
220
220
220
220
219
217
214
211
209
208
208
208
207
204
198
174
152
142
140
144
174
193
203
209
212
214
213
210
204
196
192
192
192
191
190
182
171
159
140
109
41
14
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
87
110
131
147
151
158
160
159
157
156
156
158
159
160
160
160
159
158
156
155
158
171
179
181
177
115
48
14
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
5
14
30
54
94
107
111
105
92
29
10
2
1
1
3
13
37
71
108
126
133
134
132
129
116
98
73
43
13
4
4
4
4
4
7
21
45
81
134
201
211
215
216
215
214
211
207
204
203
199
198
198
197
196
195
194
193
191
187
178
166
151
134
117
107
108
114
126
143
169
187
201
209
211
212
213
213
214
215
215
216
216
216
216
216
216
216
216
216
215
214
213
212
211
211
212
213
216
219
221
221
221
220
218
215
215
215
216
220
224
225
225
225
225
225
225
224
224
224
224
224
224
225
225
225
226
226
226
226
225
223
222
221
220
220
220
219
217
216
212
210
208
208
208
208
207
205
196
178
149
144
142
148
168
197
205
209
212
214
214
210
203
196
192
192
192
191
189
184
171
162
144
111
58
9
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
89
118
138
149
152
159
161
159
157
157
157
158
159
160
160
160
160
159
157
155
157
169
178
181
177
117
48
14
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
4
7
24
36
39
37
30
10
4
2
1
1
1
2
6
16
39
80
97
106
108
106
95
80
55
29
7
2
2
3
3
3
4
7
21
47
88
169
200
213
216
216
215
214
210
207
205
203
201
199
198
197
195
194
193
191
188
178
166
151
134
117
108
109
116
127
143
168
186
200
209
211
212
213
213
214
214
215
215
215
216
216
216
216
216
216
216
215
214
213
211
211
211
211
213
215
218
220
220
219
218
216
214
213
213
215
219
224
225
225
225
225
225
225
225
225
225
225
225
225
225
225
225
226
225
225
224
222
220
220
219
218
217
215
214
212
210
208
208
208
208
207
205
198
183
166
152
147
148
161
180
199
209
211
213
213
213
208
200
195
192
192
192
191
186
180
172
160
136
94
48
11
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
91
124
143
151
153
160
161
159
157
157
157
158
159
160
160
160
160
159
157
155
157
169
178
181
177
114
46
13
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
3
8
12
13
12
10
4
2
1
1
1
1
1
3
6
14
37
59
74
81
82
74
61
41
20
5
2
2
2
3
3
3
5
13
30
61
133
182
206
214
216
216
215
213
210
206
204
202
201
200
199
196
195
193
191
188
179
167
152
135
118
109
110
117
128
143
166
184
198
208
211
212
213
213
214
214
215
215
215
215
216
216
216
216
216
216
215
214
213
212
211
211
211
212
214
217
218
218
218
217
215
212
212
212
213
216
223
224
225
225
225
225
225
225
225
225
225
225
225
225
225
224
224
222
221
220
218
217
216
215
214
213
212
210
210
209
208
208
207
205
203
190
176
165
157
152
155
168
184
199
208
211
212
213
212
208
199
195
193
192
192
189
185
179
172
163
133
90
50
19
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
94
129
147
153
154
160
161
160
158
157
157
158
159
159
160
160
160
159
157
156
157
169
178
181
176
108
43
12
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
3
2
2
1
1
1
1
1
1
1
1
2
4
13
28
41
51
56
51
41
27
13
4
1
1
1
2
3
3
4
7
18
39
101
158
194
212
215
216
216
215
212
209
206
204
203
201
200
197
195
194
192
188
180
168
153
136
119
110
111
117
127
141
163
181
196
206
211
212
213
213
214
214
215
215
215
215
215
216
216
216
216
216
215
214
213
212
211
211
211
212
213
215
217
217
217
216
215
212
211
211
211
213
220
223
224
225
225
225
225
225
224
224
224
224
223
223
222
221
220
218
217
216
215
214
213
212
212
210
210
209
208
208
207
205
201
195
187
174
165
159
157
159
174
189
201
208
211
212
212
210
206
201
195
193
192
191
189
184
179
171
159
139
89
48
21
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
98
133
150
155
156
161
161
160
158
157
157
158
158
159
160
160
160
159
157
156
157
170
179
181
174
100
38
10
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
3
7
16
24
30
28
23
15
8
3
1
1
1
1
2
2
3
4
9
22
72
128
175
206
214
215
216
216
215
212
208
207
205
203
201
198
196
194
192
189
181
170
155
138
120
111
112
117
127
139
160
177
192
204
210
212
213
213
214
214
214
214
215
215
215
215
216
216
216
216
215
214
213
212
211
211
211
211
212
214
216
216
216
215
214
211
210
209
209
210
216
221
223
224
225
225
224
224
223
223
222
222
221
220
219
217
216
215
214
213
212
211
211
210
210
209
208
208
207
206
202
197
190
181
171
163
161
162
166
175
195
205
210
212
212
212
209
205
200
195
193
192
191
188
185
178
171
157
134
99
42
17
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
102
136
151
156
157
161
161
160
158
157
157
157
158
159
159
159
159
159
157
156
158
172
180
180
171
87
32
8
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
3
5
8
9
7
5
3
2
1
1
1
1
1
2
2
3
4
7
44
98
154
197
212
215
216
216
216
216
211
209
207
205
202
200
196
194
192
190
182
171
157
140
122
113
113
117
125
137
156
172
188
200
208
211
213
213
214
214
214
214
214
215
215
215
215
215
215
215
215
215
214
213
212
211
211
211
212
213
214
215
215
214
214
211
209
208
208
208
210
216
220
223
224
224
224
223
222
222
220
219
218
217
216
214
213
212
212
211
211
210
210
209
209
208
207
206
204
200
190
181
174
168
164
163
164
172
184
200
210
211
212
212
212
209
203
198
195
193
192
190
187
183
179
172
159
130
91
45
9
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
108
137
152
157
158
162
162
161
159
157
157
157
158
158
159
159
159
158
157
156
160
175
181
177
162
65
22
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
3
5
19
58
113
168
206
214
215
216
217
217
215
212
210
208
205
201
198
195
193
191
184
174
160
144
126
114
114
117
124
133
149
164
180
193
203
209
211
213
213
214
214
214
214
214
214
215
215
215
215
215
215
215
214
214
213
212
211
211
211
212
213
213
213
213
213
211
209
208
206
206
205
207
211
215
218
221
222
221
221
220
219
218
217
215
214
213
212
211
211
210
210
209
208
207
206
202
197
192
185
179
173
170
169
168
167
176
189
200
207
211
212
212
211
209
206
199
196
194
193
192
188
184
180
176
170
145
105
63
28
7
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
111
138
152
158
159
162
162
161
159
158
157
158
158
158
159
159
159
158
157
157
164
178
182
173
146
47
15
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
3
12
38
83
138
194
212
214
215
216
217
216
214
212
210
206
202
198
196
193
192
185
176
163
148
130
116
115
117
123
131
144
157
172
186
197
205
209
212
213
213
214
214
214
214
214
214
215
215
215
215
215
215
215
214
213
212
212
211
211
212
212
212
212
212
212
211
209
208
206
205
204
204
205
207
209
212
214
216
216
217
216
215
215
214
213
211
210
209
208
207
205
203
200
197
194
188
184
181
178
175
172
172
174
179
185
196
203
208
210
211
211
209
207
204
200
196
194
192
189
187
183
180
173
161
140
92
54
27
10
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
115
139
152
159
160
163
163
161
160
158
158
158
158
158
158
159
158
158
157
157
169
180
181
165
124
31
10
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
6
23
57
107
171
208
212
214
215
217
217
216
214
211
208
203
199
196
194
192
186
178
166
152
134
118
116
118
122
128
139
151
164
178
190
200
206
209
212
213
213
214
214
214
214
214
214
214
215
215
215
215
215
214
214
213
212
212
212
212
212
212
212
212
212
211
209
208
207
205
203
203
202
203
203
205
206
207
208
209
209
208
208
207
206
205
204
202
200
199
196
193
191
188
185
181
179
177
176
176
178
181
187
193
200
207
210
211
211
210
208
205
202
199
196
193
190
188
185
182
178
169
152
127
93
45
22
8
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
118
139
152
159
161
163
163
162
160
158
158
158
158
158
158
159
158
158
157
159
175
181
178
154
96
17
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
12
36
77
139
200
209
213
214
216
217
216
215
213
209
204
200
197
195
193
188
180
170
156
139
121
118
118
121
126
135
144
156
168
181
194
200
205
209
212
213
213
213
213
214
214
214
214
214
214
215
215
215
215
214
214
213
213
212
212
212
212
212
212
211
211
210
209
207
206
204
203
202
201
200
200
200
200
200
200
200
200
200
199
198
197
195
194
192
190
187
185
183
182
181
179
179
179
181
183
189
195
201
206
210
212
211
210
209
207
204
200
197
195
193
189
186
184
180
177
165
145
116
81
45
13
5
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
120
140
152
159
161
164
164
163
161
158
158
158
158
158
158
159
158
157
158
161
181
182
173
138
64
8
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
5
19
49
102
187
204
212
214
214
216
216
215
213
211
205
201
198
196
194
189
182
173
161
145
124
120
119
121
125
132
138
147
158
171
185
193
200
205
209
212
213
213
213
213
213
213
214
214
214
214
214
214
214
214
214
214
213
213
212
212
212
212
211
211
211
210
209
208
207
204
203
202
201
200
198
198
197
196
195
194
194
193
192
191
190
189
188
187
186
184
184
183
182
181
182
184
187
192
198
205
209
211
211
212
211
209
207
205
202
199
196
193
190
187
184
182
180
175
167
138
101
63
31
10
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
123
140
152
159
162
164
164
164
162
160
158
158
158
158
159
159
158
158
161
170
183
181
152
100
29
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
9
25
59
145
188
207
213
214
215
215
215
214
211
207
203
200
197
195
191
186
178
167
154
132
124
121
121
124
129
133
138
146
156
170
180
188
195
201
207
210
211
212
213
213
213
213
213
213
213
214
214
214
214
214
214
214
213
213
213
212
212
212
211
211
210
210
209
208
207
205
204
202
200
199
198
197
196
195
194
193
192
192
191
190
189
188
187
187
186
187
188
191
194
199
203
207
209
210
211
211
211
210
208
206
204
202
199
197
193
190
186
184
182
179
174
164
145
114
65
34
14
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
124
139
151
159
162
165
165
164
163
161
159
159
159
159
159
159
158
159
164
177
181
171
124
64
12
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
5
15
36
103
165
198
211
213
214
215
215
214
212
208
205
201
199
196
192
188
181
173
162
141
129
124
122
124
128
131
134
139
146
158
167
176
184
192
200
204
207
210
211
212
212
212
212
213
213
213
213
213
214
214
214
214
213
213
213
213
213
212
212
212
211
211
210
210
209
208
206
205
204
202
201
200
198
197
196
195
195
194
194
193
194
194
195
195
197
199
201
203
205
207
209
209
210
210
210
209
208
206
205
202
200
197
194
190
186
184
182
180
177
168
150
124
93
60
26
13
5
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
125
139
150
158
162
165
165
165
164
162
160
159
159
160
160
158
158
162
170
180
179
148
91
35
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
7
18
68
134
180
207
213
214
214
214
214
213
209
206
203
200
197
194
190
185
178
169
150
137
128
124
124
127
129
132
135
139
148
156
164
172
180
190
196
201
205
208
210
211
212
212
212
212
212
212
212
213
213
213
213
213
213
213
213
213
213
213
212
212
212
212
211
210
210
209
208
207
206
205
204
203
203
202
201
201
201
201
201
202
202
203
204
206
207
208
209
210
210
210
209
209
209
207
206
204
203
200
197
194
191
187
184
181
179
176
170
161
135
107
77
48
25
7
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
126
139
149
157
162
165
165
165
164
163
161
161
161
161
160
158
160
167
175
181
170
115
57
14
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
7
39
98
155
197
211
213
214
214
214
213
210
207
204
201
199
195
192
188
182
175
160
146
135
128
126
126
129
131
133
135
140
146
152
160
167
178
185
191
197
201
206
208
210
211
211
211
211
212
212
212
212
212
213
213
213
213
213
213
213
213
213
213
212
212
212
212
211
211
211
211
210
209
209
209
208
208
208
208
208
208
208
209
209
209
210
210
210
210
210
210
209
209
208
207
206
204
202
200
198
195
190
187
184
181
179
176
172
163
149
128
89
59
34
16
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
127
138
148
156
161
164
165
165
165
164
163
163
162
161
159
159
163
172
179
178
149
72
25
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
3
14
61
122
177
208
213
213
214
214
214
211
209
206
203
200
196
194
190
185
180
168
156
144
134
128
128
129
130
132
133
135
138
143
148
154
164
171
179
185
192
199
203
206
208
210
210
211
211
211
211
211
211
211
212
212
212
212
212
213
213
213
213
212
212
212
212
212
212
212
212
212
212
212
211
211
211
211
211
211
211
211
211
210
210
210
210
210
209
209
208
207
206
206
204
203
201
198
194
191
187
182
180
178
177
175
169
157
136
109
76
39
18
7
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
127
138
147
155
160
163
164
165
165
164
164
163
161
159
159
161
170
174
172
160
76
28
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
7
24
70
130
191
211
213
213
214
214
212
210
208
205
202
199
196
193
189
185
178
169
158
148
138
132
131
131
132
133
135
135
137
139
142
148
154
160
167
173
182
188
193
198
202
206
208
209
209
210
210
210
210
210
210
210
211
211
211
211
211
212
212
212
212
212
212
212
212
212
212
211
211
211
211
211
211
211
210
210
210
209
209
209
208
207
207
207
206
206
204
203
200
197
194
189
185
182
179
177
176
174
171
166
156
128
100
70
42
23
5
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
128
138
147
153
158
163
164
164
165
164
164
162
161
160
161
167
173
171
154
111
39
15
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
13
43
89
153
204
211
213
213
213
213
211
209
207
204
201
198
195
192
188
183
176
168
159
150
140
137
135
134
134
135
136
137
138
140
143
146
150
154
160
167
173
179
184
190
196
200
203
205
207
208
209
209
209
209
209
209
209
209
210
210
210
210
210
210
210
210
210
210
210
210
210
210
210
210
209
209
209
209
209
208
208
208
207
207
206
205
204
202
200
197
194
190
187
183
179
177
175
174
172
169
162
150
133
111
77
51
31
18
8
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
128
139
147
152
157
161
163
164
164
164
162
161
160
161
162
170
171
156
123
73
23
10
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
6
23
56
111
185
204
212
213
213
213
212
210
208
206
203
200
197
194
191
186
182
177
170
162
152
146
143
140
138
137
138
138
139
139
141
143
145
148
151
156
161
165
170
176
183
188
192
196
199
202
204
206
207
207
208
208
208
208
208
208
208
209
209
209
209
209
209
209
209
209
209
209
208
208
208
208
207
207
207
206
206
205
204
203
200
198
196
193
190
186
183
180
177
175
173
171
169
166
161
147
131
111
89
65
36
20
11
5
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
129
140
147
152
155
160
162
163
164
163
161
160
161
162
164
171
162
132
91
49
19
9
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
10
31
69
153
190
207
212
213
213
213
211
210
208
205
202
199
197
194
190
187
183
178
173
164
158
153
149
145
142
141
141
140
141
141
142
143
145
146
149
152
155
159
163
169
174
178
183
187
193
196
199
201
203
204
205
206
206
207
207
207
207
207
207
207
207
207
207
207
207
207
207
206
206
206
205
205
204
203
202
200
199
197
195
191
188
185
182
179
176
173
172
170
169
166
163
157
148
136
111
88
66
45
28
9
5
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
130
141
147
151
154
159
162
163
162
160
160
161
161
163
167
169
144
107
70
44
23
11
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
12
32
108
166
198
211
213
213
213
212
211
209
207
204
201
199
196
192
190
187
185
182
175
170
166
162
158
153
150
147
145
143
142
142
143
144
145
146
149
150
152
154
158
161
165
169
172
178
182
186
190
193
197
199
201
203
204
204
205
205
205
205
205
205
205
204
204
204
204
203
203
202
201
200
199
197
196
193
190
188
185
182
178
175
173
171
169
168
167
166
165
163
157
147
132
114
91
61
41
26
15
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
131
142
148
151
153
159
160
159
159
160
161
159
159
162
170
155
117
90
70
52
25
12
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
10
48
109
163
200
211
212
213
213
212
211
209
207
204
202
199
196
193
191
190
188
185
182
179
177
175
172
169
166
163
159
154
151
148
146
146
146
148
149
150
152
154
155
157
158
160
162
165
167
169
172
175
178
181
184
186
189
191
192
194
194
195
195
195
195
194
194
192
191
190
188
186
184
182
180
178
175
173
171
169
167
166
165
164
164
163
161
158
153
144
131
107
87
68
49
31
13
9
5
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
131
143
149
151
153
158
158
159
160
161
159
157
161
167
168
131
108
95
83
65
32
16
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
24
68
121
170
203
211
212
212
212
212
210
209
206
204
202
198
196
194
192
191
190
188
186
184
183
181
180
178
176
174
171
168
164
161
157
152
151
150
150
151
153
154
155
156
158
160
161
162
164
165
167
168
169
170
172
173
174
175
177
177
178
179
179
180
180
179
179
178
177
176
174
173
171
170
168
166
165
164
163
163
162
161
159
156
152
141
129
115
100
83
60
45
32
20
10
5
3
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
133
144
149
151
153
157
158
159
160
160
156
156
164
168
158
120
113
110
105
92
52
27
11
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
9
35
79
130
180
207
210
212
212
212
211
210
208
206
204
201
199
196
194
193
192
191
191
190
188
188
187
186
186
185
183
181
178
176
172
167
163
160
157
155
155
155
155
156
157
158
159
160
161
162
163
163
164
164
165
165
166
166
166
167
167
167
168
168
167
167
167
166
166
165
164
163
163
162
161
160
159
159
158
157
153
148
142
134
123
105
90
73
57
43
27
19
12
6
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
134
145
149
151
153
157
159
161
161
157
154
160
168
166
144
121
127
130
130
123
84
49
23
7
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
12
41
85
143
194
206
211
212
212
212
211
210
208
207
204
202
199
197
195
194
193
193
193
192
192
192
192
191
191
191
190
189
188
186
183
179
175
171
166
162
161
159
159
158
159
159
160
161
161
162
162
163
163
163
163
163
162
162
162
162
161
161
161
160
160
159
159
159
158
158
158
157
157
157
156
155
154
151
148
138
128
116
102
86
65
49
35
24
15
7
5
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
136
146
150
151
153
157
163
163
159
153
154
169
172
160
131
135
145
150
150
148
127
82
43
15
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
13
42
92
166
195
208
211
212
212
212
211
210
209
207
204
202
200
197
195
195
194
194
194
195
195
195
195
195
195
195
194
194
193
193
192
191
189
186
181
177
172
168
165
162
161
161
161
162
162
163
163
163
163
163
163
163
162
162
162
161
161
160
160
159
159
158
158
158
157
156
156
155
154
153
151
147
141
133
114
99
83
66
49
29
18
11
6
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
137
146
150
151
154
162
164
161
156
155
168
177
163
144
135
153
155
155
153
151
146
127
86
41
10
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
10
30
96
151
187
207
211
211
212
212
211
210
209
208
206
204
202
199
197
196
195
195
195
196
196
196
196
196
196
197
197
197
197
197
197
197
196
195
193
192
190
187
184
181
179
176
174
172
171
171
170
170
170
169
169
169
168
167
167
166
166
165
164
163
163
162
161
160
159
157
156
154
150
144
134
120
102
77
60
44
30
18
8
4
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
138
146
150
153
158
167
164
160
158
162
179
179
159
140
144
157
157
156
153
150
147
139
110
69
22
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
12
49
97
145
185
206
211
211
212
212
212
210
209
208
207
205
203
201
199
198
197
196
196
196
196
196
196
197
197
197
198
198
198
198
198
198
198
197
197
196
196
194
193
191
190
189
187
185
184
183
183
182
181
181
180
180
179
178
178
177
177
175
174
172
170
169
165
162
159
156
152
144
132
115
96
76
52
37
24
14
7
3
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
139
147
150
154
162
169
163
161
164
174
184
174
154
140
151
160
160
157
153
149
146
143
125
91
38
5
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
20
53
97
143
183
207
210
211
212
212
211
211
210
209
208
206
205
203
201
200
199
199
198
198
197
197
197
198
198
198
199
199
199
199
199
199
199
199
199
200
199
199
198
198
198
197
196
195
194
193
192
191
191
190
189
188
187
186
185
184
181
179
177
174
171
167
162
157
150
141
123
105
86
67
50
31
20
11
5
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
141
147
151
156
166
170
163
164
171
185
186
166
149
142
156
163
162
157
152
147
145
143
134
107
54
9
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
21
51
92
141
189
202
209
211
211
212
211
211
210
210
209
207
206
205
204
203
202
201
200
200
199
199
199
199
200
200
200
201
201
201
200
200
201
201
201
201
201
202
202
202
202
202
202
201
201
200
199
198
197
196
194
193
191
189
186
182
179
176
172
167
159
151
142
131
116
91
72
54
39
26
15
9
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
143
148
152
158
170
169
164
168
177
188
186
157
145
147
159
164
163
157
151
145
143
142
137
117
70
13
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
19
44
82
147
184
203
210
210
211
212
211
211
211
210
210
209
208
207
206
205
204
203
202
202
202
202
202
202
203
203
203
203
202
202
202
202
202
201
201
202
202
203
203
204
204
204
204
204
204
203
201
200
198
195
193
190
187
184
179
175
169
162
154
137
123
107
90
73
52
37
25
15
8
5
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
144
148
155
163
173
166
165
173
184
189
181
150
141
147
160
161
155
149
144
143
143
142
138
122
83
19
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
10
26
68
110
150
183
204
210
211
212
212
212
212
212
211
211
211
211
211
210
210
210
209
209
208
208
208
207
207
207
206
206
205
204
203
203
202
202
202
202
203
203
203
204
204
205
205
203
201
198
195
191
185
180
172
164
154
140
128
115
102
88
71
58
44
32
23
14
10
6
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
144
149
157
166
173
164
165
176
187
190
173
147
141
146
155
151
147
144
143
142
141
140
137
123
88
21
7
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
9
32
60
93
127
159
189
200
206
209
211
211
212
212
212
212
212
211
211
211
211
211
211
210
210
210
209
209
208
208
207
206
205
205
204
203
202
202
202
202
203
203
202
202
201
198
191
185
178
170
161
148
138
127
116
105
89
78
67
56
45
35
26
19
13
8
5
3
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
146
150
159
167
170
162
167
179
189
189
164
144
139
143
146
144
142
142
141
141
139
139
136
123
90
23
8
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
11
27
48
74
104
140
161
177
189
198
204
206
208
209
209
210
210
210
210
210
210
210
210
210
209
209
209
208
208
207
206
205
204
203
202
201
201
201
201
200
199
196
192
186
178
164
154
143
131
119
103
91
80
70
60
48
39
31
24
19
13
8
6
4
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
147
151
159
166
166
160
170
181
190
188
156
141
138
139
139
140
141
141
140
139
138
137
135
122
90
23
8
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
7
18
33
52
83
106
128
147
163
176
183
188
192
195
197
199
200
201
201
202
202
202
203
203
203
203
203
203
203
202
201
201
200
199
197
196
195
193
190
184
177
168
157
144
126
112
99
86
74
59
49
40
32
25
19
14
9
6
5
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
147
152
160
165
162
159
174
184
189
184
148
139
136
136
137
141
141
140
139
137
137
136
133
120
87
22
7
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
8
17
34
50
66
81
96
115
128
139
149
157
165
169
172
175
178
180
182
184
186
188
189
190
191
192
192
192
192
191
190
189
187
184
179
174
166
153
140
126
112
98
80
67
55
43
33
24
18
12
8
5
4
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
147
152
157
159
155
159
180
187
183
172
142
137
136
138
141
141
141
140
138
137
136
136
132
115
77
17
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
6
11
18
24
31
37
41
45
50
54
60
64
67
71
74
78
81
85
89
93
100
104
108
112
115
119
121
122
122
121
117
112
106
99
91
79
70
60
50
41
30
23
17
11
6
4
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
145
151
154
154
152
168
183
184
176
163
141
139
139
141
142
142
141
140
140
138
137
136
130
110
67
13
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
4
6
9
11
14
15
17
18
20
22
23
25
26
28
30
31
33
35
38
41
44
47
50
53
56
58
60
61
61
59
56
53
49
45
38
33
27
22
17
11
8
6
4
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
142
148
150
150
153
177
183
178
167
154
141
141
142
143
142
142
142
142
142
141
139
137
128
103
55
9
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
3
3
4
4
4
4
5
5
6
6
7
8
8
9
10
11
12
14
15
17
18
20
21
22
23
23
23
22
20
19
17
14
11
9
7
5
3
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
138
144
147
150
158
182
179
169
157
148
143
144
143
143
143
143
145
145
145
143
141
137
123
93
43
6
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
3
3
3
3
4
4
4
5
5
5
5
4
4
3
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
138
142
145
153
171
181
171
159
150
145
145
144
143
143
143
146
148
149
148
146
143
138
117
81
31
4
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
139
143
151
162
175
168
157
150
146
145
145
143
144
146
150
156
157
155
153
149
145
136
104
62
18
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
142
148
158
167
170
157
150
147
146
145
143
144
148
153
157
159
158
156
153
150
146
130
92
47
12
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
145
153
161
165
159
149
147
146
145
144
143
149
154
158
160
160
159
157
154
152
146
120
78
35
7
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
148
157
160
158
148
145
145
145
145
144
146
155
158
159
159
159
158
157
155
153
143
108
64
24
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
148
157
154
147
143
144
145
145
145
144
155
158
157
156
155
157
157
157
156
153
139
93
49
15
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
148
148
143
138
143
144
145
144
145
148
159
153
151
150
151
153
155
156
155
151
118
68
30
7
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
143
139
137
138
143
144
145
145
147
153
155
151
149
149
150
151
152
152
149
141
92
47
18
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
138
134
135
138
143
145
145
145
148
154
152
150
149
149
149
149
149
147
138
121
65
29
10
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
134
131
134
138
143
145
145
145
148
153
151
150
149
149
148
147
145
138
123
94
40
16
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
130
130
134
139
143
145
144
145
148
151
150
150
149
149
148
146
140
126
101
64
19
7
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
128
130
134
139
144
145
144
146
149
150
151
150
150
149
148
144
129
101
67
31
6
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
128
130
134
139
144
145
144
146
149
150
151
151
150
148
147
141
115
81
46
17
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
128
130
134
139
144
145
144
146
148
150
151
150
149
148
146
135
99
61
29
8
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
128
130
134
139
145
145
144
146
148
150
151
150
148
147
145
126
82
44
16
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
128
130
134
140
145
145
145
146
148
150
150
149
148
146
143
112
64
28
7
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
128
130
134
139
145
145
145
146
147
149
149
148
146
143
137
87
39
13
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
128
129
133
139
145
145
145
146
147
149
148
146
144
140
129
62
25
7
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
128
129
133
139
145
146
146
147
148
148
147
145
143
134
112
39
14
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
128
128
132
138
145
146
147
147
148
147
145
144
140
124
88
21
7
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
127
128
131
137
145
146
147
147
147
145
143
142
135
111
58
7
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
127
127
130
136
143
146
146
145
144
142
142
139
118
78
22
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
127
127
130
134
139
144
143
142
142
142
141
130
93
46
9
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
127
127
130
133
137
140
140
141
141
141
137
108
64
22
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
128
128
129
132
135
138
139
140
140
139
123
76
35
7
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
128
128
129
132
135
136
139
140
139
136
94
39
11
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
129
130
131
132
134
138
139
138
129
107
29
9
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
130
131
132
133
136
139
138
127
101
52
10
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
132
133
134
136
138
137
126
97
59
18
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
135
135
136
137
137
125
97
57
20
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
137
137
137
137
134
94
44
16
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
136
134
125
104
66
18
6
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
105
88
67
45
22
6
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
55
41
26
13
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
13
7
4
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1